Junior — Middle
Ce valoare returnează metoda length atunci când este apelată pe un șir de caractere?
sobes.tech AI
Răspuns de la AI
În Go, metoda len atunci când este apelată pe un șir de caractere returnează numărul de octeți din șir, nu numărul de caractere. Acest lucru se datorează faptului că șirurile în Go sunt secvențe de octeți codificate în UTF-8. Dacă șirul conține doar caractere ASCII, numărul de octeți corespunde numărului de caractere. Dar dacă există caractere multilingve, fiecare poate ocupa mai mulți octeți.
Exemplu:
package main
import (
"fmt"
)
func main() {
s := "Привет"
fmt.Println(len(s)) // Va afișa numărul de octeți, de exemplu 12
}
Pentru a număra numărul de caractere (rune), trebuie folosită funcția utf8.RuneCountInString din pachetul unicode/utf8.