Junior — Middle
Qaysi natijani ichki funktsiya len satrga chaqirilganda qaytaradi?
sobes.tech AI
AIdan javob
Go tilida, len ichki funksiyasi, satrga chaqirilganda, shu satrning baytlar sonini qaytaradi, belgilar (runlar) sonini emas.
Bu, Go'dagi satrlar UTF-8 kodlashida baytlar ketma-ketligi bo‘lib, agar satr faqat ASCII belgilaridan iborat bo‘lsa, baytlar soni belgilar soniga teng bo‘ladi. Ammo satrda ko‘p baytli belgilar (masalan, kirill, emoji) bo‘lsa, len baytlar yig‘indisini qaytaradi, belgilar sonini emas.
Misol:
s := "Привет"
fmt.Println(len(s)) // Baytlar sonini chiqaradi, masalan 12
runes := []rune(s)
fmt.Println(len(runes)) // Belgilar sonini chiqaradi, masalan 6
Agar belgilar sonini (runlar) olishni istasangiz, satrni runlar bo‘lakchasiga aylantirib, uning uzunligini olishingiz kerak.