Junior — Middle
Aké výsledky získame pri sekvenčnom prechádzaní znakov reťazca?
sobes.tech AI
Odpoveď od AI
Pri sekvenčnom prechode znakov v reťazci v Go (Golang) sa zvyčajne používa slučka for range, ktorá iteruje cez runy (runes) — Unicode kódové body.
Výsledkom takéhoto prechodu je získanie každého znaku reťazca ako hodnoty typu rune a jeho pozície (indexu v bajtoch).
Príklad:
package main
import (
"fmt"
)
func main() {
s := "Привет"
for i, r := range s {
fmt.Printf("Index: %d, Znak: %c\n", i, r)
}
}
Výstup bude obsahovať index (v bajtoch) a zodpovedajúci znak. To je dôležité, pretože v UTF-8 môžu znaky zaberať rôzny počet bajtov.
Týmto spôsobom umožňuje sekvenčný prechod správnu prácu s Unicode reťazcami, získavaním každého znaku ako celku, nie len jednotlivých bajtov.