Junior — Middle
Kokią reikšmę grąžina length metodas, iškvietus jį eilutėje?
sobes.tech AI
Atsakymas iš AI
Go kalboje, len metodas, iškvietus jį eilutėje, grąžina baitų skaičių eilutėje, o ne simbolių skaičių. Tai yra todėl, kad eilutės Go yra baitų sekos, koduotos UTF-8. Jei eilutė turi tik ASCII simbolius, baitų skaičius sutampa su simbolių skaičiumi. Tačiau jei yra daugiakalbių simbolių, kiekvienas jų gali užimti kelis baitus.
Pavyzdys:
package main
import (
"fmt"
)
func main() {
s := "Привет"
fmt.Println(len(s)) // Parodys baitų skaičių, pavyzdžiui 12
}
Norint suskaičiuoti simbolių (rune) skaičių, reikia naudoti utf8.RuneCountInString funkciją iš unicode/utf8 paketo.