追記 perl もでした。。。
随分前の話だけど
こういう仕様だとは分かったが、len(strings.Split("", ","))が1になるのが納得いかん。 #golang
— Sheile (@Sheile) August 19, 2015
僕にはドキュメントでは「分割できなかったときは、要素が文字列1つだけの配列を返します。」って書いてあるのに "a".split(/,/).size が1になり、 "".split(/,/).size が0になるrubyの方が分からない。
— mattn (@mattn_jp) August 19, 2015
javascript "".split(",").length == 1、perl my @a=split /,/,""; length @a で1、ruby だけじゃない?
— mattn (@mattn_jp) August 19, 2015
@mattn_jp Pythonも1でした。len("".split(","))
— 渋川よしき (@shibu_jp) August 19, 2015
と言われたので纏めておきます。
Javascript
console.log("".split(",").length); // 1
Perl
my @a = split /,/,"";
warn length @a; # 1
Python
print len("".split(",")) # 1
Ruby
puts "a".split(/,/).size # 1
そうそう
puts "".split(/,/).size # 0
えっ
この辺の動きが言語毎に違うと困ったりしないんだろうか。
追記
すいませんすいません。perl も同じでした。。。
my @a = split /,/, "";
warn scalar @a; # 0