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