¿Por qué split ('') está tratando de ser (también) inteligente?
Acabo de descubrir el siguiente comportamiento extraño conString#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"]
La fuente (string.c de 2.0.0) tiene más de 200 líneas y contiene un pasaje como este:
/* L 5909 */
else if (rb_enc_asciicompat(enc2) == 1) {
if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ' '){
split_type = awk;
}
}
Más tarde, en el código para elawk
tipo dividido, el argumento real ya no se usa más y hace lo mismo que un simplesplit
.