Junior — Middle
Ce informație returnează funcția len în timpul procesării unui șir de caractere?
sobes.tech AI
Răspuns de la AI
În limbajul Go, funcția len aplicată unui șir de caractere returnează numărul de octeți din acest șir, nu numărul de caractere (rune).
Acest lucru se datorează faptului că șirurile în Go sunt stocate în format UTF-8, unde un caracter poate ocupa între 1 și 4 octeți. Prin urmare, len returnează lungimea în octeți.
Exemplu:
package main
import (
"fmt"
)
func main() {
s := "Привет" // cuvânt în rusă
fmt.Println(len(s)) // Va afișa numărul de octeți, de exemplu 12
}
Dacă doriți să obțineți numărul de caractere (rune), trebuie să convertiți șirul într-un slice de rune:
runes := []rune(s)
fmt.Println(len(runes)) // Va afișa numărul de caractere, de exemplu 6
Prin urmare, len pentru un șir de caractere reprezintă lungimea în octeți, nu în caractere.