Почему split ('') пытается быть (слишком) умным?

Я только что обнаружил следующее странное поведение с:String#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"]

Источник (string.c из 2.0.0) имеет длину более 200 строк и содержит такой отрывок:

/* L 5909 */
else if (rb_enc_asciicompat(enc2) == 1) {
    if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ' '){
        split_type = awk;
    }
}

Позже, в коде дляawk тип split, фактический аргумент isn 'т даже больше не используется и делает то же самое, что и равнина.split

Кто-нибудь еще чувствует, что это как-то сломано?Есть ли для этого веские причины?Ли «магия» подобное случается чаще, чем большинство людей может думать в Ruby?

Ответы на вопрос(2)

Ваш ответ на вопрос