Junior — Middle
Jaké jsou vlastnosti při průchodu znaky řetězce v programování?
sobes.tech AI
Odpověď od AI
V jazyce Go jsou řetězce reprezentovány jako posloupnost bajtů, ale často obsahují znaky v kódování UTF-8, kde jeden znak (runa) může zabírat několik bajtů. Při procházení řetězce podle indexů (například for i := 0; i < len(s); i++) procházíte bajty, nikoli znaky, což může vést k nesprávnému zpracování vícejazyčných znaků.
Pro správné procházení znaků se používá smyčka for range, která iteruje přes runy (Unicode body kódu):
s := "Привет"
for i, r := range s {
fmt.Printf("index: %d, znak: %c\n", i, r)
}
Zde je i index prvního bajtu runy v řetězci a r je samotná runa. To je důležité pro správnou práci s vícejazyčnými texty a znaky mimo ASCII.