脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

[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


ちょっとはまったのでメモ。