Answers:
您可以使用数组文字:
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语法:
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]
to_a
([*'1'..'3']
),也要加上一个详细答案。
Array[ "1","2","3"] #=> ["1","2","3"]
我认为该方法与数组文字构造函数无关)。您还可以使用顶级Kernel#Array(方法名的确看起来像类名)Array(1..5) #=> [1,2,3,4,5]
除了上述答案外,您也可以执行此操作
=> [*'1'.."5"] #remember *
=> ["1", "2", "3", "4", "5"]
>> [*?1..?5] #=> ["1", "2", "3", "4", "5"]
。
你可以做
array = ['1', '2', '3']
如其他人所述,您还可以使用%w表示法初始化数组,如下所示:
array = %w(1 2 3)
要么
array = %w[1 2 3]
请注意,在两种情况下,每个元素都是字符串,而不是整数。因此,如果要使用其元素为整数的数组,则不应使用撇号将每个元素包装起来:
array_of_integers = [1, 2, 3]
另外,您无需在元素之间放入逗号(在创建不带%w表示法的数组时,这是必需的)。如果您这样做(我经常错误地这样做),如下所示:
wrong_array = %w(1, 2, 3)
它的元素将是三个字符串,即“ 1,”,“ 2”,“ 3”。因此,如果您这样做:
puts wrong_array
输出将是:
1,
2,
3
=>nil
这不是我们想要的。
希望这有助于澄清这一点!
您可以使用%w
ruby数组中的符号简单地执行此操作。
array = %w(1 2 3)
它将数组值1,2,3添加到数组中,并将输出打印为 ["1", "2", "3"]