在Ruby中创建此数组的最短方法是什么:
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
感谢您的帮助!
答案 0 :(得分:13)
(10..100).step(10).to_a
#=> [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
10.step(100, 10).to_a
#=> [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
答案 1 :(得分: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]
答案 2 :(得分:2)
这直接从构造函数构建一个数组。
Array.new(10){|i| (i + 1) * 10}
# => [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]