Junior — Middle
Co se stane, když se v programování provádí iterace přes řetězcové prvky?
sobes.tech AI
Odpověď od AI
V Go při iteraci přes řetězec pomocí cyklu for range se prochází podle Unicode kódových bodů (run), nikoliv podle bajtů. To znamená, že každý prvek cyklu je Unicode znak, který může zabírat několik bajtů v UTF-8.
Například:
s := "Привет"
for i, r := range s {
fmt.Printf("Index: %d, Runa: %c\n", i, r)
}
Zde je i index prvního bajtu runy v řetězci a r je samotná runa (znak).
Tímto způsobem umožňuje iterace přes řetězec v Go správně pracovat s vícejazyčnými znaky a nezlomí vícebajtové znaky v UTF-8.