Ruby_Array_21
この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。
class Array (Ruby 3.0.0 リファレンスマニュアル)
インスタンスメソッド
each {|item| .... } -> self
each -> Enumerator
- 各要素に対してブロックを評価する
- ブロックが与えられなかった場合は、自身とeachから生成したEnumeratorオブジェクトを返す
irb(main):001:0> arr = [1, 2, 3] => [1, 2, 3] irb(main):002:1* v = arr.each do |i| irb(main):003:1* puts i irb(main):004:1* end 1 2 3 => [1, 2, 3] irb(main):005:0> v => [1, 2, 3]
irb(main):001:0> arr = [1, 2, 3] => [1, 2, 3] irb(main):002:0> brr = arr.each => #<Enumerator: [1, 2, 3]:each> irb(main):003:0> arr[1] = 'a' => "a" irb(main):004:0> brr => #<Enumerator: [1, "a", 3]:each> irb(main):005:1* brr.each do |i| irb(main):006:1* puts i irb(main):007:1* end 1 a 3 => [1, "a", 3]
each_index {|index| .... } -> self
each_index -> Enumerator
- 各要素のインデックスに対してブロックを評価する
- ブロックが与えられなかった場合は、自身とeach_indexから生成したEnumeratorオブジェクトを返す
irb(main):001:0> arr = %w[a b c] => ["a", "b", "c"] irb(main):002:1* v = arr.each_index do |idx| irb(main):003:1* puts idx irb(main):004:1* end 0 1 2 => ["a", "b", "c"] irb(main):005:0> v => ["a", "b", "c"]
irb(main):001:0> arr = %w[a b c] => ["a", "b", "c"] irb(main):002:0> brr = arr.each_index => #<Enumerator: ["a", "b", "c"]:each_index> irb(main):003:0> arr[1] = 'z' => "z" irb(main):004:0> brr => #<Enumerator: ["a", "z", "c"]:each_index> irb(main):005:1* brr.each do |idx| irb(main):006:1* puts idx irb(main):007:1* end 0 1 2 => ["a", "z", "c"] # memo # Enumeratorに対してはeachを利用
メモ
- each_indexはどういうときに使うのだろうか