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