我是Ruby新手,所以我还在学习一些东西。但是,我确实有很好的Java和C经验。
我想知道这究竟是什么:
[ 'a','b', 'c' ].each_with_index {|item, index| result << [item, index] }
具体来说,我对<<
感兴趣。一些研究告诉我它用于位移,但显然不是这里的情况,那么它在这里做了什么?
答案 0 :(得分:12)
在这种情况下,<<
运算符正在向结果数组添加项目。
答案 1 :(得分:6)
<<
是一种方法,会为不同的类做不同的事情。 Array使用它将对象推送到数组的末尾。 Fixnums use it to shift
答案 2 :(得分:6)
在Ruby中,所有C / Java中的运算符,如+, - ,*,/等,实际上都是方法调用。您可以根据需要重新定义它们。
class MyInteger
def +(other)
42 # or anything you want
end
end
Array将<<
方法定义为“将此项目推送到此数组的末尾”。对于整数,它被定义为稍微移位。
除了Array之外,许多其他类定义<<
来表示某种“附加”操作。
答案 3 :(得分:4)
这基本上是一个附加操作员。
它用于将元素附加到数组或子字符串附加到字符串
适用于阵列
1.9.2-p290:009&gt; arr = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
1.9.2-p290:010&gt; arr&lt;&lt; 6
=> [1, 2, 3, 4, 5, 6]
1.9.2-p290:011&gt;
对于字符串
1.9.2-p290:011&gt; str =“ruby”
=> "ruby"
1.9.2-p290:012&gt; str&lt;&lt; '轨道'
=> "rubyrails"
1.9.2-p290:013&gt;