Ruby_Array_33
この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。
class Array (Ruby 3.0.0 リファレンスマニュアル)
インスタンスメソッド
join(sep = $,) -> String
- 配列の要素を文字列sepを間に挟んで連結した文字列を返す
- $,はデフォルトnilの特殊変数
- 文字列でない要素に対しては、to_strがあればto_str、なければto_sした結果を連結する
- 要素が配列であれば再帰的に (同じsepを利用して) joinした文字列を連結する
- 列要素が自身を含むような無限にネストした配列に対してはArgumentErrorとなる
irb(main):001:0> [1, 2, 3].join => "123"
irb(main):001:0> [1, true, false, 2].join => "1truefalse2" irb(main):002:0> true.to_s => "true" irb(main):003:0> false.to_s => "false"
irb(main):001:0> [1, 2, ['a', 'b', 'c'], 3, 4].join => "12abc34" irb(main):002:1> [1, 2, {a: 'a', b: 'b'}, 3, 4].join => "12{:a=>\"a\", :b=>\"b\"}34" irb(main):003:0> {a: 'a', b: 'b'}.to_s => "{:a=>\"a\", :b=>\"b\"}"
irb(main):001:0> [1, 2, 3].join('_') => "1_2_3"
irb(main):001:0> [1, 2, ['a', 'b', 'c'], 3, 4].join => "12abc34"
irb(main):001:0> arr = [1, 2, 3] => [1, 2, 3] irb(main):002:0> arr.push(arr) => [1, 2, 3, [...]] irb(main):003:0> arr => [1, 2, 3, [...]] irb(main):004:0> arr.join Traceback (most recent call last): 5: from /Users/mfham/.rbenv/versions/3.0.0/bin/irb:23:in `<main>' 4: from /Users/mfham/.rbenv/versions/3.0.0/bin/irb:23:in `load' 3: from /Users/mfham/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.3.0/exe/irb:11:in `<top (required)>' 2: from (irb):4:in `<main>' 1: from (irb):4:in `join' ArgumentError (recursive array join)