Warum versucht Split (''), (zu) schlau zu sein?
Ich habe gerade das folgende merkwürdige Verhalten mit entdecktString#split
:
"a\tb c\nd".split
=> ["a", "b", "c", "d"]
"a\tb c\nd".split(' ')
=> ["a", "b", "c", "d"]
"a\tb c\nd".split(/ /)
=> ["a\tb", "c\nd"]
Die Quelle (string.c ab 2.0.0) ist über 200 Zeilen lang und enthält eine Passage wie diese:
/* L 5909 */
else if (rb_enc_asciicompat(enc2) == 1) {
if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ' '){
split_type = awk;
}
}
Später im Code für dieawk
split type, das eigentliche Argument wird nicht mehr verwendet und verhält sich genauso wie ein plainsplit
.