我编写了以下Ruby代码
array1 << item if item = prepare_item
prepare_item是一个返回对象的方法,或者是nil,array1是一个对象数组。
但是上面的代码不起作用,我认为引起了某种异常。
以下重写工作
if item = prepare_item
array1 << item
end
所以我的问题是:你能解释一下上面两段代码是如何不同的吗?第一个片段出了什么问题?
答案 0 :(得分:-2)
你忘记了一个“=”,所以整行应该看起来像
array1 << item if item == prepare_item