Sobes.tech
Junior — Middle

Quale informazione restituisce la funzione len durante l'elaborazione di una stringa?

sobes.tech AI

Risposta dell'AI

Nel linguaggio Go, la funzione len applicata a una stringa restituisce il numero di byte in questa stringa, non il numero di caratteri (rune).

Ciò è dovuto al fatto che le stringhe in Go sono memorizzate in formato UTF-8, dove un carattere può occupare da 1 a 4 byte. Pertanto, len restituisce la lunghezza in byte.

Esempio:

package main
import (
    "fmt"
)

func main() {
    s := "Привет" // parola in russo
    fmt.Println(len(s)) // Mostrerà il numero di byte, ad esempio 12
}

Se si desidera ottenere il numero di caratteri (rune), bisogna convertire la stringa in un slice di rune:

runes := []rune(s)
fmt.Println(len(runes)) // Mostrerà il numero di caratteri, ad esempio 6

Quindi, len per una stringa è la lunghezza in byte, non in caratteri.