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