Ruby:[var]<<的含义是什么? AnotherObj

时间:2011-09-21 01:20:41

标签: ruby-on-rails ruby arrays operators

我正在使用传统的Rails项目,发现了一段不理解的代码。

鉴于此

 search = Sunspot.search(entities)
 ...
 [search] << AnotherClass.new 

显然它们是两种不同的对象类型。使用[] <<

的含义是什么?

2 个答案:

答案 0 :(得分:4)

[...]是一个数组文字,<<是Array上的运算符,表示“追加”。它返回一个新数组,并在末尾附加右侧元素。所以:

[search] << AnotherClass.new  #  =>  [search, AnotherClass.new]

答案 1 :(得分:3)

<<运算符将右侧的对象追加到数组中。

[search] << AnotherClass.new 

在Rails控制台上试试这个:

a = [1,2]
=> [1, 2]
>> a << 3  # appends 3 to the array
=> [1, 2, 3]

>> [6, 7] << 8  # appends 8 to the newly declared array on the left
=> [6, 7, 8]