Sobes.tech
Junior — Middle

Jaké výsledky získáme při sekvenčním průchodu znaky řetězce?

sobes.tech AI

Odpověď od AI

Při sekvenčním průchodu znaky řetězce v Go (Golang) se obvykle používá smyčka for range, která iteruje přes runy (runes) — Unicodeové kódové body.

Výsledkem takové iterace je získání každého znaku řetězce jako hodnoty typu rune a jeho pozice (index v bajtech).

Pří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 obsahovat index (v bajtech) a odpovídající znak. To je důležité, protože v UTF-8 mohou znaky zabírat různý počet bajtů.

Tímto způsobem umožňuje sekvenční průchod správnou práci s Unicode řetězci, získáváním každého znaku vcelku, nikoliv pouze jednotlivých bajtů.