Sobes.tech
Junior — Middle

Kaip įgyvendinamos eilutės ir kaip jos susijusios su runomis Go kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje eilutės yra vaizduojamos string tipu, kuris yra nekintama baitų seka, dažniausiai UTF-8 koduote. Tai reiškia, kad eilutė yra baitų seka, o ne simbolių.

Rūnai (rune) yra tipas, kuris atstovauja Unicode kodo tašką (int32). Dirbant su Unicode simboliais eilutėje, ji konvertuojama į rūnų seką, leidžiančią teisingai apdoroti daugia baitinius simbolius.

Pavyzdys:

s := "Привет"
for i, r := range s {
    fmt.Printf("%d: %c\n", i, r) // i — baito indeksas, r — rūnas (simbolis)
}

runes := []rune(s) // eilutės konvertavimas į rūnų seką
fmt.Println(runes[0]) // pirmas simbolis kaip rūnas

Taigi, Go eilutės yra baitų sekos, o rūnai — atskiri Unicode simboliai, leidžiantys teisingai dirbti su daugiakalbiais tekstais.