我用这种方式初始化一个数组:
array = Array.new
array << '1' << '2' << '3'
可以一步到位吗?如果是这样,是怎么做到的?
发布于 2011-02-06 01:43:55
您可以使用数组文字:
array = [ '1', '2', '3' ]
您还可以使用范围:
array = ('1'..'3').to_a # parentheses are required
# or
array = *('1'..'3') # parentheses not required, but included for clarity
对于以空格分隔的字符串数组,可以使用Percent String syntax
array = %w[ 1 2 3 ]
您还可以将一个块传递给Array.new
,以确定每个条目的值:
array = Array.new(3) { |i| (i+1).to_s }
最后,尽管它不会产生与上面其他答案相同的三个字符串数组,但还要注意,您可以在Ruby 1.8.7+中使用枚举器来创建数组;例如:
array = 1.step(17,3).to_a
#=> [1, 4, 7, 10, 13, 16]
发布于 2011-09-28 16:14:29
线条:
array = [] << 1 << 2 << 3 #this is for fixnums.
或
a = %w| 1 2 3 4 5 |
或
a = [*'1'..'3']
或
a = Array.new(3, '1')
或
a = Array[*'1'..'3']
发布于 2011-04-22 04:26:01
除了上面的答案,你也可以这样做
=> [*'1'.."5"] #remember *
=> ["1", "2", "3", "4", "5"]
https://stackoverflow.com/questions/4908413
复制相似问题