Junior — Middle
Quale risultato restituisce la funzione incorporata len quando viene chiamata su una stringa?
sobes.tech AI
Risposta dell'AI
In Go, la funzione incorporata len quando viene chiamata su una stringa restituisce il numero di byte in quella stringa, non il numero di caratteri (rune).
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 è uguale al numero di caratteri. Ma se la stringa contiene caratteri multibyte (ad esempio, cirillici, emoji), allora len restituirà la somma dei byte, non il numero di caratteri.
Esempio:
s := "Привет"
fmt.Println(len(s)) // Mostrerà il numero di byte, ad esempio 12
runes := []rune(s)
fmt.Println(len(runes)) // Mostrerà il numero di caratteri, ad esempio 6
Se si desidera ottenere il numero di caratteri (rune), bisogna convertire la stringa in una slice di rune e prendere la sua lunghezza.