Arrayのメソッドその2
Array.try_convert
1.9から。引数のオブジェクトをto_aryメソッドを使って配列に変換しようとする。変更できない場合は nil を返す。
Array#*
- 整数なら配列を整数個連結して返す
- String(またはto_strを持つメソッド)ならjoin(str)と等価
重複削除系
とか & は重複削除されるけど + とか - は削除されない |
Array#-
引数に含む要素であれば複数削除される
[ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ] # => [3, 3, 5]
Array#push,Array#<<,Array#concat,Array#+=
これらは混同しがち。
Array#push
複数の引数をとって、配列に追加する。引数がArrayならArrayのまま追加する。
Array#<<
与えられたオブジェクトを配列に追加する。連続して書くことで複数のオブジェクトを配列に追加できる。引数がArrayならArrayのまま追加する。
Array#concat, Array#+=
配列の引数をとって結合する。
(追記)破壊的か非破壊的か
Array#+=だけは非破壊(新しい配列が作られる)。ほかは破壊的。
参考
プログラミングRuby 第2版 ライブラリ編
posted with amazlet at 11.01.15