Ruby_Array_50
この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。
class Array (Ruby 3.1 リファレンスマニュアル)
インスタンスメソッド
rindex(val) -> Integer | nil
rindex {|item| ... } -> Integer | nil
rindex -> Enumerator
- 指定されたvalと==で等しい最後の要素の位置を返す
- 等しい要素がひとつもなかった場合はnilを返す
- ブロックが与えられた場合、各要素を末尾から順に引数としてブロックを実行し、ブロックが真を返す最初の要素の位置を返す
- ブロックが真を返す要素がなかったときはnilを返す
- 引数、ブロックのどちらも与えられなかった場合、自身とrindexから生成したEnumeratorオブジェクトを返す
irb(main):001:0> arr = ['a', 'b', 'a', nil] => ["a", "b", "a", nil] irb(main):002:0> arr.rindex('b') => 1 irb(main):003:0> arr.rindex('a') => 2 irb(main):004:0> arr.rindex(nil) => 3 irb(main):005:0> arr.rindex('z') => nil
irb(main):001:0> [1, 2].rindex(1.0) => 0 irb(main):002:0> [1, 2].rindex('1') => nil irb(main):003:0> [1.0, 2].rindex('1') => nil
irb(main):001:0> [1, 3, 5, 7].rindex { |v| v > 4 } => 3
irb(main):001:0> arr = [1, 5, 7, 3] => [1, 5, 7, 3] irb(main):002:0> enum = arr.rindex => #<Enumerator: [1, 5, 7, 3]:rindex> irb(main):003:0> enum.each { |v| puts v } 3 7 5 1 => nil irb(main):004:0> enum.each { |v| v > 4 } => 2 irb(main):005:0> enum.each { |v| v < 0 } => nil irb(main):006:0> arr << 6 => [1, 5, 7, 3, 6] irb(main):007:0> enum => #<Enumerator: [1, 5, 7, 3, 6]:rindex>