[Ruby]Rubyの条件式に多重代入と入れるとエラーになる件
Rubyの条件式に多重代入を入れるとエラーになる。
例えば以下みたいな。
if (res1, res2 = multi_return_method) && res1 == 'hoge' puts 'success!!' end def multi_return_method return 'hoge', 'fuga' end
結論から言うと、仕様で意図的にエラーにしているようです。
Matz「多重代入はかならず真になるため、条件に登場するのは本質的には無意味で、「わざと」か「書き間違い」かのいずれかです。これを許すよりは書き間違いを検出する方が適切だと考えます。」bugs.ruby-lang.org
ちょっとはまったのでメモ。