maeshimaの日記

メモ書きです

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版 ライブラリ編
Dave Thomas Chad Fowler Andy Hunt
オーム社
売り上げランキング: 228524