第二話 rescueと代入
以下のように書くと、どう解釈されるのか?
a = (raise "") rescue 10 p a #=> 10
rescueの結果がaに代入されている。
従って、次のように解釈されていることがわかる。
a = ((raise "") rescue 10)
rescueが代入よりも優先順位が高いように見える。
しかし、次の文はどうなるだろうか?
c = (raise "") rescue (raise "") rescue 20 p c #=> nil
これは、次のようには解釈されていない。
c = ((raise "") rescue (raise "") rescue 20) p c #=> 20
Rubyの奥深さを思い知らされる。