3

split上のメソッドの奇妙な動作を観察しましたString

"1..2".split('..')      # => ['1', '2']
"1..2".split('..', 2)   # => ['1', '2']

"..2".split('..')       # => ['', '2']
"..2".split('..', 2)    # => ['', '2']

すべてが期待どおりですが、今:

"1..".split('..')       # => ['1']
"1..".split('..', 2)    # => ['1', '']

最初のものは2番目のものと同じものを返すと思います。

誰もが良い説明を持っていますか?なぜ"1..".split('..')要素が1つだけの配列を返すのですか? それともRubyの矛盾ですか?あれについてどう思う?

4

1 に答える 1