文字列の配列を結合するさい、Pythonでは
"".join(['1', '2', '3']) # => '123'
という書き方をする。
区切り文字を入れたい場合は、以下のようにすればよい。
"_".join(['1', '2', '3']) # => '1_2_3'
さて、RubyにおいてはArrayがjoinを持っていて、それぞれの要素を自動的に文字列化してくれる(要素がto_sを持っている場合?)。
[1, 2, 3].join # => "123"
次のような問題を考えてみる。___に当てはまるコードは何だろうか。
___ assert_equal "a_b_c", ["a", "b", "c"].join
Rubyにはデフォルトセパレータ$,がグローバルスコープに存在し、これに文字列を代入することによりArray#joinの区切り文字列を予め決めることができる。
ただしKernel#printの各引数の出力の区切りにもこの文字列が使われるので注意。
$, = "_" assert_equal "a_b_c", ["a", "b", "c"].join # => true