この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。
class Array (Ruby 3.1 リファレンスマニュアル)
インスタンスメソッド
reverse -> Array
reverse! -> self
- 自身の要素を逆順に並べた新しい配列を生成して返す
- reverse!は自身を破壊的に並べ替え、selfを返す
irb(main):001:0> arr = ['a', 1, 5] => ["a", 1, 5] irb(main):002:0> brr = arr.reverse => [5, 1, "a"] irb(main):003:0> brr => [5, 1, "a"] irb(main):004:0> arr[0].capitalize! => "A" irb(main):005:0> arr => ["A", 1, 5] irb(main):006:0> brr => [5, 1, "A"]
irb(main):001:0> arr = ['a', 1, 5] => ["a", 1, 5] irb(main):002:0> arr.reverse! => [5, 1, "a"] irb(main):003:0> arr => [5, 1, "a"]
reverse_each {|item| ... } -> self
reverse_each -> Enumerator
- 各要素に対して逆順にブロックを評価する
- ブロックが与えられなかった場合、自身と reverse_each から生成した Enumeratorオブジェクトを返す
irb(main):001:0> arr = %w[a b c] => ["a", "b", "c"] irb(main):002:0> arr.reverse_each { |v| puts v.capitalize } C B A => ["a", "b", "c"] irb(main):003:0> arr => ["a", "b", "c"]
irb(main):001:0> arr = %w[a b c] => ["a", "b", "c"] irb(main):002:0> arr.reverse_each { |v| puts v.capitalize! } C B A => ["A", "B", "C"] irb(main):003:0> arr => ["A", "B", "C"]
irb(main):001:0> arr = %w[a b c] => ["a", "b", "c"] irb(main):002:0> enum = arr.reverse_each => #<Enumerator: ["a", "b", "c"]:reverse_each> irb(main):003:0> enum.each { |v| puts v } c b a => ["a", "b", "c"] irb(main):004:0> arr[1].capitalize! => "B" irb(main):005:0> enum => #<Enumerator: ["a", "B", "c"]:reverse_each> irb(main):006:0> enum.each { |v| puts v } c B a => ["a", "B", "c"]