三項演算子を使用した割り当てが奇妙に反応するのはなぜだろうと思っています。
a = "foo"
=> "foo"
a = nil ? nil : a
=> "foo"
a
=> "foo"
しかし:
a = nil ? nil : a
=> "foo"
a = "bar" ? "bar" : a
=> "bar"
a
=> "bar"
と:
if a = nil
puts "should be nil"
end
=> nil
代入は成功しましたが、 は falseを返すputs
ため、文字列は返されません。a = nil
nil
それはすべて意図したとおりに動作していますか?