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