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

标签 ruby arrays initialization

我这样初始化一个数组:

array = Array.new
array << '1' << '2' << '3'

是否可以一步完成?如果是,怎么做?

最佳答案

您可以使用数组文字:

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 ]

您还可以将 block 传递给 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]

关于ruby - 如何使用 Ruby 一步初始化一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908413/

相关文章:

java - 字符串变量可能尚未初始化(错误指向第 34 行)

iOS 指定初始化器 : Using NS_DESIGNATED_INITIALIZER

c++ - 使用空的 weak_ptr 作为参数调用 map::count 是否安全?

ruby - 源代码语言分析器

ruby-on-rails - RubyGems 依赖错误

ruby - 如何停止 binding.pry 在循环内执行?

javascript - 使用 splice 方法添加元素

javascript - 如何在 JavaScript 中对多维数组进行排序

php - 不要写入空数组字段

Ruby 正则表达式不同于 Rubular