Junior
Cosa rappresenta il tipo di dato string nel linguaggio Golang?
sobes.tech AI
Risposta dell'AI
In Golang, string è una sequenza immutabile di byte.
Caratteristiche principali:
- Immutabilità: Dopo aver creato una stringa, non può essere modificata. Qualsiasi operazione che modifica la stringa crea in realtà una nuova stringa.
- Rappresentazione: La stringa contiene una sequenza di byte. Per impostazione predefinita, Golang presume che questi byte rappresentino testo codificato in UTF-8.
- Lunghezza: La lunghezza della stringa (
len(s)) restituisce il numero di byte nella stringa, non il numero di rune (simboli). - Indicizzazione: L'accesso agli elementi della stringa tramite indice (
s[i]) restituisce il byte in quell'indice. - Runes: Per lavorare con i caratteri (rune), si utilizza l'iterazione sulla stringa con un ciclo
for range, che decodifica UTF-8 e fornisce le rune e i loro indici.
Esempio:
// Inizializzazione della stringa
s := "Привет, мир!" // 23 byte, 12 rune
// Lunghezza della stringa (in byte)
byteLength := len(s) // 23
// Accesso al byte tramite indice
firstByte := s[0] // 208 (byte 'П' in UTF-8)
// Iterazione sulle rune
runeCount := 0
for index, runeValue := range s {
// index - indice di inizio della rune nella stringa (in byte)
// runeValue - la rune decodificata
runeCount++
}
// runeCount = 12