这个Ruby代码array1<<<<<< item if item = prepare_item

时间:2012-03-30 09:35:46

标签: ruby

我编写了以下Ruby代码

array1 << item if item = prepare_item

prepare_item是一个返回对象的方法,或者是nil,array1是一个对象数组。

但是上面的代码不起作用,我认为引起了某种异常。

以下重写工作

if item = prepare_item
  array1 << item
end

所以我的问题是:你能解释一下上面两段代码是如何不同的吗?第一个片段出了什么问题?

1 个答案:

答案 0 :(得分:-2)

你忘记了一个“=”,所以整行应该看起来像

array1 << item if item == prepare_item