【发布时间】:2012-03-01 08:33:33
【问题描述】:
我是 Ruby 新手,所以我还在学习一些东西。但是,我在 Java 和 C 方面确实有很好的经验。
我想知道这到底是做什么的:
[ 'a','b', 'c' ].each_with_index {|item, index| result << [item, index] }
具体来说,我对<< 感兴趣。一些研究告诉我它是用于位移的,但很明显这里不是这样,那么它在这里做什么呢?
【问题讨论】:
-
顺便说一下,这大致相当于首选的
results = ['a', 'b', 'c'].each_with_index.to_a。 -
@NiklasB。我会说它完全等效(而且相当漂亮)。
-
@Andrew: 除非
results之前是空的...还有一个,顺便说一句,它不是那么漂亮:['a', 'b', 'c'].zip(0..(1.0/0)):D -
@NiklasB。啊,没想到。但是你可以只做
results + [...].each_...。我也喜欢第二个,但我认为直接使用Float::INFINITY会让您更明显地尝试获得无限范围。 -
@Andrew:是的,但是
Float::INFINITY根本不会打字。
标签: ruby-on-rails ruby object operators