首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Ruby一步初始化一个数组?

如何使用Ruby一步初始化一个数组?
EN

Stack Overflow用户
提问于 2011-02-06 01:36:54
回答 8查看 171K关注 0票数 108

我用这种方式初始化一个数组:

代码语言:javascript
复制
array = Array.new
array << '1' << '2' << '3'

可以一步到位吗?如果是这样,是怎么做到的?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-02-06 01:43:55

您可以使用数组文字:

代码语言:javascript
复制
array = [ '1', '2', '3' ]

您还可以使用范围:

代码语言:javascript
复制
array = ('1'..'3').to_a  # parentheses are required
# or
array = *('1'..'3')      # parentheses not required, but included for clarity

对于以空格分隔的字符串数组,可以使用Percent String syntax

代码语言:javascript
复制
array = %w[ 1 2 3 ]

您还可以将一个块传递给Array.new,以确定每个条目的值:

代码语言:javascript
复制
array = Array.new(3) { |i| (i+1).to_s }

最后,尽管它不会产生与上面其他答案相同的三个字符串数组,但还要注意,您可以在Ruby 1.8.7+中使用枚举器来创建数组;例如:

代码语言:javascript
复制
array = 1.step(17,3).to_a
#=> [1, 4, 7, 10, 13, 16]
票数 198
EN

Stack Overflow用户

发布于 2011-09-28 16:14:29

线条:

代码语言:javascript
复制
array = [] << 1 << 2 << 3   #this is for fixnums.

代码语言:javascript
复制
 a = %w| 1 2 3 4 5 |

代码语言:javascript
复制
 a = [*'1'..'3']

代码语言:javascript
复制
 a = Array.new(3, '1')

代码语言:javascript
复制
 a = Array[*'1'..'3']
票数 25
EN

Stack Overflow用户

发布于 2011-04-22 04:26:01

除了上面的答案,你也可以这样做

代码语言:javascript
复制
    =>  [*'1'.."5"]   #remember *
    => ["1", "2", "3", "4", "5"]
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4908413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档