Sobes.tech
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.