私の理解ではif
、行末のステートメントは行頭のコードの前に評価されます。
'never shown' if (false)
そして代入はif
ステートメントで可能です。
'shown' if (value = 'dave is king')
value #=> "dave is king"
そして、存在しない変数が代入されると、それが作成されます。事前に存在する必要はありません。これは本当ですか?
これらの仮定がすべて正しい場合、なぜこれが失敗するのでしょうか?
error_array << error if (error = import_value(value))
#=> undefined local variable or method `error' for
配列が右にプッシュされる前にエラーに割り当てられましたか? 物事がいつ評価されるかを理解したい。
これは機能します:
if (error = import_value(value))
error_array << error
end
今、私は本当に混乱しています。