我customer.id
等于171
。在我执行以下if
语句后,它会返回"customer.id = 0"
:
customer.id #=> 171
if customer.id = 0
puts "customer.id = 0" # => customer.id = 0
end
任何人都可以解释为什么会这样吗?
答案 0 :(得分:4)
您正在进行作业:
if customer.id = 0
应该进行比较:
if customer.id == 0
答案 1 :(得分:1)
Ruby认为false
和nil
是唯一的两个“假”值,而其他一切都是“真实的”。这是根据定义,不能修改(至少在MRI中)。这个定义用于所有内置运算符,如if,除非,while,until,cond? if_truthy:if_falsey,||,&&,...
写时
if customer.id = 0 # customer.id = 0 will return 0
...
end
与
相同if 0 # and 0 is truthy
...
end
答案 2 :(得分:0)
在Ruby中使用==执行等式测试。