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.