3

在 Ruby 中创建这个数组的最短方法是什么:

[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

谢谢你的帮助!

4

3 回答 3

13

怎么样Range#step

(10..100).step(10).to_a
#=> [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

或者Numeric#step

10.step(100, 10).to_a
#=> [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
于 2013-08-05T13:31:35.693 回答
8

您可以在其上使用Range和调用Enumerable#map方法,如下所示:

(1..10).map{|i| i * 10}
# => [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

或者,正如@JörgWMittag 所建议的,使用Object#method返回Method实例的方法,该实例通过&符号转换为proc:

(1..10).map(&10.method(:*))
# => [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
于 2013-08-05T13:29:06.120 回答
2

这直接从构造函数构建一个数组。

Array.new(10){|i| (i + 1) * 10}
# => [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
于 2013-08-05T13:35:04.073 回答