1. ホーム
  2. ルビー

[解決済み】Rubyで配列を反復処理するための「正しい」方法は何ですか?

2022-03-25 21:54:48

質問

PHPは、その欠点はあるものの、この点ではかなり優れています。配列とハッシュに違いはなく(私が単純なのかもしれませんが、明らかに正しいように思えます)、どちらかを繰り返し処理するには

foreach (array/hash as $key => $value)

Rubyでは、このようなことをするための方法がたくさんあります。

array.length.times do |i|
end

array.each

array.each_index

for i in array

ハッシュは、私がいつも使っているように、より理にかなっています。

hash.each do |key, value|

なぜ、配列にはできないのでしょうか?一つのメソッドだけを覚えたい場合は each_index (インデックスと値の両方が利用可能になるため)、しかし、そのために array[index] ではなく、単に value .


そうだ、忘れていました。 array.each_with_index . しかし、これは、それが行くので、最悪です。 |value, key|hash.each が行く |key, value| ! これって、非常識じゃないですか?

解決方法は?

これは、すべての要素を繰り返し処理します。

array = [1, 2, 3, 4, 5, 6]
array.each { |x| puts x }

プリントする。

1
2
3
4
5
6

これは、すべての要素を繰り返し処理し、値とインデックスを取得します。

array = ["A", "B", "C"]
array.each_with_index {|val, index| puts "#{val} => #{index}" }

プリントする。

A => 0
B => 1
C => 2

ご質問の内容では、どちらをお探しなのかよくわかりません。