Junior — Middle
Dasturlashda satrning harflari bo'ylab yurishda qanday xususiyatlar mavjud?
sobes.tech AI
AIdan javob
Go'da satrlar baytlar ketma-ketligi sifatida taqdim etiladi, ammo ular ko'pincha UTF-8 kodlashida belgilarni o'z ichiga oladi, bunda bir belgi (runa) bir nechta baytlarni olishi mumkin. Satrdan indekslar bo'yicha o'tish (masalan, for i := 0; i < len(s); i++) siz baytlar bo'yicha o'tasiz, belgilar emas, bu ko'pbaytli belgilarni noto'g'ri ishlashga olib kelishi mumkin.
To'g'ri belgilar bo'yicha o'tish uchun, for range sikli ishlatiladi, u Unicode kod nuqtalari (runalar) bo'yicha iteratsiya qiladi:
s := "Привет"
for i, r := range s {
fmt.Printf("indeks: %d, belgi: %c\n", i, r)
}
Bu yerda, i satrdagi runaning birinchi bayti indeksidir, r esa runa o'zi. Bu ko'p tilli matnlar va ASCII tashqarisidagi belgilar bilan to'g'ri ishlash uchun muhimdir.