Sadece String#split
ile aşağıdaki tek davranış keşfetti:Neden bölünmüş ('') akıllı olmaya çalışıyor?
"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"]
The source (2.0.0 dan string.c) 200 satır uzunluğundadır ve bunun gibi bir ifadeleri içermektedir:
/* L 5909 */
else if (rb_enc_asciicompat(enc2) == 1) {
if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ' '){
split_type = awk;
}
}
Daha sonra awk
bölünmüş türünün kodunda, gerçek argüman artık kullanılmaz ve düz split
ile aynıdır.
- Bunun bir şekilde kırıldığını hisseden başka biri var mı?
- Bunun için iyi nedenler var mı?
- Böyle "büyü" böyle çoğu insan Ruby'de düşünebilir daha sık olur mu? documentation üzerinden
Neden belgelenmiş "çok akıllı" bir şey var? Metin ayırmak için kullanmak için alternatif bir desen geçirerek seçerseniz, geçersiz kılabileceğiniz varsayılan bir davranışdır. –
Çok akıllıca demek istediğim ruby, tüm boşluk karakterlerine bölmek istediğimi tahmin ediyor, tam anlamıyla boşluklara bölmek için söylüyorum. –
Bu soruyu kapatmak için oy kullanacağım, çünkü muhtemelen bu soruya genel olarak tatmin edici bir cevap olmadığını fark ettim. Bütün cevaplarınız ve yorumlarınız için teşekkürler! –