Ruby_Array_49

この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。

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"]