言語間に寄るsplitの仕様の差異
たまたま、goで書かれた物をperlへ移植しようとしていたらsplitの挙動の差が出てきまして、他の言語の場合どうなるんだろうとぱっと思いついた言語で実行して見ました。以下の文字列を言語標準でついている文字列のsplitを実行した結果となります。
"/path/to/hoge/"
言語 | 結果 |
---|---|
perl(5.12) | ['','path','to','hoge'] |
golang(1.5) | ["" "path" "to" "hoge" ""] |
ruby(2.1) | ["", "path", "to", "hoge"] |
ptyhon(2.7.8) | ['', 'path', 'to', 'hoge', ''] |
js | [ '', 'path', 'to', 'hoge', '' ] |
perl6 | ("", "path", "to", "hoge", "") # (perl6-m -e 'say "/path/to/hoge/".split("/").perl') |
clojure(1.4.0) | ["" "path" "to" "hoge"] |
php(5.5.14) | [0] => [1] => path [2] => to [3] => hoge |
単純にsplitをした結果、末尾の扱いに差異が見られました。
言語の樹形図を遡っていけばなんか分かるのですかね。
http://gigazine.net/news/20070126_computer_languages_history/