Sobes.tech
Junior

Co představuje datový typ string v jazyce Golang?

sobes.tech AI

Odpověď od AI

V Golang je string neměnná sekvence bajtů.

Klíčové vlastnosti:

  • Neměnnost: Po vytvoření řetězce jej nelze změnit. Jakákoli operace, která řetězec upravuje, ve skutečnosti vytvoří nový řetězec.
  • Zobrazení: Řetězec obsahuje sekvenci bajtů. Ve výchozím nastavení Golang předpokládá, že tyto bajty představují text zakódovaný v UTF-8.
  • Délka: Délka řetězce (len(s)) vrací počet bajtů v řetězci, nikoli počet run (symbolů).
  • Indexace: Přístup k prvkům řetězce pomocí indexu (s[i]) vrací bajt na dané pozici.
  • Runy: Pro práci se znaky (runami) se používá iterace přes řetězec pomocí smyčky for range, která dekóduje UTF-8 a poskytuje runy a jejich indexy.

Příklad:

// Inicializace řetězce
s := "Привет, мир!" // 23 bajtů, 12 run

// Délka řetězce (v bajtech)
byteLength := len(s) // 23

// Přístup k bajtu podle indexu
firstByte := s[0] // firstByte = 208 (bajt pro 'П' v UTF-8)

// Iterace přes runy
runeCount := 0
for index, runeValue := range s {
	// index - počáteční index runy v řetězci (v bajtech)
	// runeValue - dekódovaná runa
	runeCount++
}
// runeCount = 12