Sobes.tech
Junior — Middle

Koju vrednost vraća metoda length kada se pozove na stringu?

sobes.tech АИ

Одговор од АИ

U Go, metoda len kada se pozove na string, vraća broj bajtova u stringu, a ne broj znakova. To je zato što su stringovi u Go-u sekvence bajtova kodiranih u UTF-8. Ako string sadrži samo ASCII znakove, broj bajtova odgovara broju znakova. Ali ako postoje višejezični znakovi, svaki od njih može zauzeti više bajtova.

Primer:

package main
import (
    "fmt"
)

func main() {
    s := "Привет"
    fmt.Println(len(s)) // Prikazaće broj bajtova, na primer 12
}

Za brojanje broja znakova (runeova), treba koristiti funkciju utf8.RuneCountInString iz paketa unicode/utf8.