わたなべです.

MORITA Atsushi <moritaa / coe.nttdata.co.jp> writes:

:[] + ["a"] => ["a"]
:[] + "a"   => ["a"]
:で、
:[] + [""]  => [""]
:なのに、
:[] + ""    => []
:
:というのは、私にとっては違和感がある([""]を期待してしまう)んですが、ど
:のような理由でこういう動作になっているんでしょうか?

[] + "" は [] + "".to_a となり最終的には "".each_line まで行
きつきます. "" だと何も push されないので "".to_a は [] になります.
というわけで String#each_line の仕様です.

:",a".split(/,/) => ["", "a"]
:なのに
:",".split(/,/)  => []
:
:というのも同様です。(["", ""]を期待)
:ねっこは同じなんだろうなぁということはなんとなくわかるんですが...

こちらは Perl の仕様に合わせたからです.
",".split(/,/, -1) は ["", ""] になります.

-- 
わたなべひろふみ