将特定大小和内容设置为数组

时间:2014-05-23 09:57:34

标签: ruby-on-rails ruby

我正在开发一个Rails 3.2.14应用程序,在这个应用程序中我正在创建 一个正好有31个零的数组:

<% @total = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] %>

我知道必须有更好的方法来做到这一点吗?

感谢所有输入!

2 个答案:

答案 0 :(得分:8)

Array.new可能是最干净的方法:

Array.new(31, 0)

第一个参数是大小,第二个参数是默认值。

其他一些选择:

[0] * 31
31.times.collect{0}
31.times.inject([]){|array, count| array << 0}

如果您正在填充零,这些方法是微不足道的,但如果您正在计算值,那么它们可以非常强大。

答案 1 :(得分:4)

您可以使用Array#newArray#fill

示例:

Array.new(31, 0)

[].fill(0, 0..30)

两者产生相同的结果。