我想知道为什么使用三元运算符的赋值会产生奇怪的反应:
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
不会puts
是字符串,因为a = nil
将nil
因此返回 false,尽管分配成功。
这一切都像预期的那样吗?