Sobes.tech
Junior — Middle

Koje su karakteristike prilikom obilaska znakova niza u programiranju?

sobes.tech АИ

Одговор од АИ

U Go-u, stringovi su predstavljeni kao niz bajtova, ali često sadrže karaktere kodirane u UTF-8, gde jedan karakter (runa) može zauzimati više bajtova. Prolaskom kroz string po indeksima (npr., for i := 0; i < len(s); i++) prolazite kroz bajtove, a ne kroz karaktere, što može dovesti do netačne obrade višebajtnih karaktera.

Da biste pravilno prolazili kroz karaktere, koristite petlju for range, koja iterira preko runa (Unicode kod tačaka):

s := "Привет"
for i, r := range s {
    fmt.Printf("indeks: %d, karakter: %c\n", i, r)
}

Ovde je i indeks prvog bajta rune u stringu, a r je sama runa. Ovo je važno za pravilnu obradu multijezičnih tekstova i karaktera van ASCII.