Sobes.tech
Junior — Middle

Kokią informaciją grąžina funkcija len apdorojus eilutę?

sobes.tech AI

Atsakymas iš AI

Go kalboje, funkcija len, taikoma eilutei, grąžina tų baitų skaičių, o ne simbolių (rune) skaičių.

Tai yra todėl, kad eilutės Go kalboje saugomos UTF-8 formatu, kuriame vienas simbolis gali užimti nuo 1 iki 4 baitų. Todėl len grąžina ilgį baitais.

Pavyzdys:

package main
import (
    "fmt"
)

func main() {
    s := "Привет" // rusų žodis
    fmt.Println(len(s)) // Parodys baitų skaičių, pvz., 12
}

Jei norite gauti simbolių (rune) skaičių, turite konvertuoti eilutę į rune skaičių masyvą:

runes := []rune(s)
fmt.Println(len(runes)) // Parodys simbolių skaičių, pvz., 6

Taigi, len eilutėje yra baitų ilgis, o ne simbolių skaičius.