使用ruby数组splat将数组递增到变量的值

时间:2013-06-04 11:15:55

标签: ruby

我正在使用像这样的ruby数组splat:

array = *1,2,3 
Output = [1, 2, 3] 
count = 10 #Initializing count 

问题:我想让数组一直持续到count = 10,当我尝试它时它不起作用array = *1,..,count

预期输出: [1,2,3,4,5,6,7,8,9,10]

采用这种方式是否有可能成功的方法。

5 个答案:

答案 0 :(得分:3)

count = 10
*(1..count) # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

答案 1 :(得分:2)

您只需使用Kernel#Array

即可
Array(1..count)
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

答案 2 :(得分:1)

(1..count)。to_a,或仅(1..count)如果您需要Enumerable对象但不需要显式Array。

答案 3 :(得分:0)

你必须这样做:

array = [*1..count]

答案 4 :(得分:0)

count = 10
count.times.map(&:next)
#=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]