Junior — Middle
Какви са особеностите при обхождането на символите на низ в програмирането?
sobes.tech AI
Отговор от AI
В Go низовете са представени като последователност от байтове, но често съдържат символи в UTF-8 кодиране, където един символ (руна) може да заема няколко байта. При обхождане на низ по индекси (например, for i := 0; i < len(s); i++) преминавате през байтовете, а не през символите, което може да доведе до неправилна обработка на многобайтови символи.
За правилно обхождане на символите се използва цикъл for range, който итерира върху руни (Unicode кодови точки):
s := "Привет"
for i, r := range s {
fmt.Printf("индекс: %d, символ: %c\n", i, r)
}
Тук i е индексът на първия байт на руна в низa, а r е самата руна. Това е важно за правилна работа с многоезични текстове и символи извън ASCII.