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.