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