Junior — Middle
Čo sa stane, keď sa v programovaní vykoná iterácia cez reťazcové prvky?
sobes.tech AI
Odpoveď od AI
V Go, pri iterácii cez reťazec pomocou cyklu for range, sa prechádza podľa Unicode kódových bodov (rún), nie podľa bajtov. To znamená, že každý prvok cyklu je Unicode znak, ktorý môže zaberáť viac bajtov v UTF-8.
Napríklad:
s := "Привет"
for i, r := range s {
fmt.Printf("Index: %d, Runa: %c\n", i, r)
}
Tu je i index prvého bajtu runy v reťazci a r je samotná runa (znak).
Týmto spôsobom umožňuje iterácia cez reťazec v Go správne pracovať s viacjazyčnými znakmi a ne láme multibyte znaky v UTF-8.