我对 Ruby 知之甚少,无法找到创建二维数组的方法。谁能给我一些片段或信息让我开始?
问问题
45658 次
5 回答
25
a = [[1, 2], [3, 4]]
a.each do |sub|
sub.each do |int|
puts int
end
end
# Output:
# 1
# 2
# 3
# 4
或者:
a = [[1, 2], [3, 4]]
a.each do |(x, y)|
puts x + y
end
# Output:
# 3
# 7
于 2012-10-13T17:41:25.247 回答
23
创建二维数组的最简单方法是:
arr1 = Array.new(3) { Array.new(3)}
上面的代码创建了一个三行三列的二维数组。
干杯。
于 2016-10-25T03:31:10.783 回答
13
irb(main):001:0> a = []
=> []
irb(main):002:0> a1 = [1, 2]
=> [1, 2]
irb(main):003:0> a2 = [3, 4]
=> [3, 4]
irb(main):004:0> a.push a1
=> [[1, 2]]
irb(main):005:0> a.push a2
=> [[1, 2], [3, 4]]
irb(main):006:0> a
=> [[1, 2], [3, 4]]
irb(main):007:0> a[0]
=> [1, 2]
irb(main):008:0> a[0][1]
=> 2
于 2012-10-13T17:35:08.857 回答
7
Ruby 没有像 C 那样的二维数组的概念。Ruby 中的数组是动态的——这意味着您可以随意调整它们的大小。它们可以在每个“槽”中包含任何对象或值——包括另一个数组!
在@JunaidKirkire 和@simonmenke 给出的示例中,您有一个数组,其中包含其值的数组。您可以使用类似于 C 的语法访问这些值 - 但您也可能遇到一个插槽是数组而另一个插槽只是数字、字符串或哈希的情况......
您可能需要通过 Ruby 教程来更好地了解它的工作原理。我喜欢RubyMonk,但也有其他不错的。
于 2012-10-13T17:48:05.433 回答
1
在 Ruby 中创建一个二维数组
在 ruby 中,每个方法都接受一个块。
two_d_array = Array.new(3) do
Array.new(3) do
0
end
end
同样可以写成单行(宏风格)
two_d_array = Array.new(3) { Array.new(3) { 0 } }
输出
[
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]
在 Ruby 中迭代二维数组
我可以想到三种方法。
1:使用 range
(0...two_d_array.size).each do |i|
(0...(two_d_array[i].length)).each do |j|
puts two_d_array[i][j]
end
end
2:使用 for
for i in (0...two_d_array.size)
for j in (0...two_d_array[i].length)
puts two_d_array[i][j]
end
end
三:使用 Each_with_index
方法
two_d_array.each_with_index do |sub_array, i|
sub_array.each_with_index do |item, j|
puts two_d_array[i][j]
end
end
于 2022-02-07T11:23:33.630 回答