第二話 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の奥深さを思い知らされる。