Sobes.tech
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