重複の可能性:
条件文とrubyでの値の割り当て
いくつかのrailsコードをリファクタリングしているときに、rubyで構文がおかしくなったことがあります。
次の方法を考えると
def get_value
42
end
なぜこれが機能するのですか?
if value = get_value
puts value
end
これはしませんが?
puts value if value = get_value
後者はエラーを出します:undefined local variable or method `value' for main:Object (NameError)
。これらの表現は等しいと思いましたか?putsの前にif-blockを評価する場合は、value
未定義にしないでください。