Ruby_Array_4

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

class Array (Ruby 3.0.0 リファレンスマニュアル)

インスタンスメソッド

self << obj -> self
  • objを自身の末尾に破壊的に追加
  • selfを返す
irb(main):001:0> a = [1, 2]
=> [1, 2]

irb(main):002:0> a << 3
=> [1, 2, 3]

irb(main):003:0> a
=> [1, 2, 3]
irb(main):001:0> a = [1, 2]
=> [1, 2]

irb(main):002:0> a << [3, 4]
=> [1, 2, [3, 4]]

irb(main):003:0> a
=> [1, 2, [3, 4]]
self <=> other -> -1 | 0 | 1 | nil
  • 自身とotherの各要素をそれぞれ順に<=>で比較する
    • 結果が0ではない場合、その値を返す
  • 各要素が等しく、配列の長さも等しい
    • 0を返す
  • 各要素が等しいまま一方だけ配列末尾に達する
    • 自身の方が短い場合-1を、そうでなければ1を返す
  • otherに配列以外のオブジェクトを指定した場合、nilを返す
irb(main):001:0> [1, 2] <=> [1, 3]
=> -1

# memo
# 2と3の比較で-1となるので-1が返される
irb(main):001:0> [1, 2] <=> [1, 1]
=> 1

# memo
# 2と1の比較で1となるので1が返される
irb(main):001:0> [1, 2, 3] <=> [1, 2, 3]
=> 0
irb(main):001:0> [1, 2, 3] <=> [1, 2]
=> 1
irb(main):001:0> [1, 2] <=> [1, 2, 3]
=> -1
irb(main):001:0> [1, 2] <=> true
=> nil
self == other -> bool
  • 自身とotherの各要素をそれぞれ順に==で比較して、全要素が等しければtrue、そうでなければfalseを返す
irb(main):001:0> ['foo', 'bar'] == ['foo', 'bar']
=> true
irb(main):001:0> ['foo', 'bar'] == ['foo', 'bar', 'zzz']
=> false
irb(main):001:0> ['foo'] == ['bar']
=> false
irb(main):001:0> [1] == ['1']
=> false

# memo
# 1 == '1' #=> false
irb(main):001:0> [1, 2] == [2, 1]
=> false