splitのlimit

"a,b,c,d".split(",", 2)ab,c,d に分割されるのを期待してるんですが、各言語どうでしょうか?

Ruby

irb(main):001:0> "a,b,c,d".split(",", 2)
=> ["a", "b,c,d"]

JavaScript

> "a,b,c,d".split(",", 2)
[ 'a', 'b' ]

🙀

Go

package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "a,b,c,d"
    a := strings.SplitN(s, ",", 2)
    fmt.Printf("%#v", a)
}
[]string{"a", "b,c,d"}

PHP

$a = "a,b,c,d";
$a = explode(",", $a, 2);
print_r($a);
Array
(
    [0] => a
    [1] => b,c,d
)

Java

import java.util.Arrays;

class Main {
    public static void main(String[] args) {
        var s = "a,b,c,d";
        var a = s.split(",", 2);
        Arrays.stream(a).forEach(e -> System.out.println(e));
    }

}
a
b,c,d

Rust

fn main() {
    let s = "a,b,c,d";
    let a = s.splitn(2, ",");
    for i in a {
        println!("{}", i);
    }
}
a
b,c,d

結論

JavaScriptは異端児

追記

もっと異端児がいた、python

>>> "a,b,c,d".split(",", 2)
['a', 'b', 'c,d']