Ruby Tips!

RubyのTipsを紹介します

配列の要素を連結して文字列化する

配列の要素を連結して文字列化するにはArray#joinを使う。デフォルトでは単に要素が連結される。

p ['foo', 'bar', 'buz'].join #=> "foobarbuz"

Array#joinには引数でセパレータを指定することができる。例えばCSV風に配列を文字列化するには以下のようにする。

p ['foo', 'bar', 'buz'].join(',') #=> "foo,bar,buz"

Array#joinは文字列でない要素に対してto_sで文字列化を試みる。よって以下も問題なく動作する。

p [1, /abc/, :a, Object.new].join(' ') #=> "1 (?-mix:abc) a #<Object:0x000000009fb1b8>"

配列の要素が配列の場合、Array#joinは同じセパレータを用いて再帰的な文字列化を行う。

p [[1, 2, 3], [4, 5, 6, [7, 8, 9]]].join(' ') #=> "1 2 3 4 5 6 7 8 9"