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.