Sobes.tech
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.