Junior — Middle
Ako sú reťazce implementované a ako sú spojené s runami v jazyku Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go sú reťazce reprezentované typom string, čo je nemenná sekvencia bajtov, zvyčajne kódovaná v UTF-8. To znamená, že reťazec je sekvencia bajtov, nie znakov.
Runy (rune) sú typ, ktorý predstavuje Unicode kódový bod (int32). Pre prácu s Unicode znakmi v reťazci sa reťazec prevedie na sekvenciu run, čo umožňuje správne spracovanie viacbajtových znakov.
Príklad:
s := "Привет"
for i, r := range s {
fmt.Printf("%d: %c\n", i, r) // i — index bajtu, r — runa (znak)
}
runes := []rune(s) // prevod reťazca na sekvenciu run
fmt.Println(runes[0]) // prvý znak ako runa
Takže, reťazce v jazyku Go sú sekvencie bajtov, a runy sú jednotlivé Unicode znaky, čo umožňuje správnu prácu s viacjazyčnými textami.