Junior — Middle
Quale valore restituisce il metodo length quando viene chiamato su una stringa?
sobes.tech AI
Risposta dell'AI
In Go, il metodo len quando viene chiamato su una stringa restituisce il numero di byte nella stringa, non il numero di caratteri. Questo perché le stringhe in Go sono sequenze di byte codificate in UTF-8. Se la stringa contiene solo caratteri ASCII, il numero di byte corrisponde al numero di caratteri. Ma se ci sono caratteri multilingue, ognuno può occupare più byte.
Esempio:
package main
import (
"fmt"
)
func main() {
s := "Привет"
fmt.Println(len(s)) // Mostrerà il numero di byte, ad esempio 12
}
Per contare il numero di caratteri (rune), bisogna usare la funzione utf8.RuneCountInString del pacchetto unicode/utf8.