16

私はRubyについてほとんど知識がなく、2D配列を作成する方法を見つけることができません。誰かが私に始めるためのスニペットや情報を提供してもらえますか?

4

5 に答える 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

2D配列を作成する最も簡単な方法は、次のとおりです。

arr1 = Array.new(3) { Array.new(3)}

上記のコードは、3行3列の2D配列を作成します。

乾杯。

于 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のように2次元配列の概念がありません。Rubyの配列は動的です。つまり、自由にサイズを変更できます。それらは、各「スロット」に任意のオブジェクトまたは値を含めることができます-別の配列を含みます!

@JunaidKirkireと@simonmenkeの例では、値の配列を持つ配列があります。Cと同様の構文を使用して値にアクセスできますが、1つのスロットが配列で、別のスロットが単なる数値、文字列、またはハッシュである場合もあります。

Rubyチュートリアルを実行して、Rubyがどのように機能するかをよりよく理解することをお勧めします。私はRubyMonkが好きですが、他にも良いものがあります。

于 2012-10-13T17:48:05.433 に答える
1

Rubyで2D配列を作成する

ルビーでは、すべてのメソッドがブロックを受け入れます。

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で2D配列を反復する

私は3つの方法を考えることができます。

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

3: 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 に答える