Sobes.tech
Junior — Middle

რა ხდება, როდესაც პროგრამირებაში ხაზი ელემენტებზე იტერაცია ხორციელდება?

sobes.tech AI

პასუხი AI-სგან

Go-ში, როდესაც იტერირებთ სტრიქონზე for range ციკლით, გადიხართ Unicode კოდური წერტილებით (Rune-ებით), არა ბაიტებით. ეს ნიშნავს, რომ ციკლის თითოეული ელემენტი არის Unicode სიმბოლო, რომელიც UTF-8-ში შეიძლება დაკავოს რამდენიმე ბაიტი.

მაგალითად:

s := "Привет"
for i, r := range s {
    fmt.Printf("ინდექსი: %d, რუნა: %c\n", i, r)
}

აქ, i არის პირველი ბაიტის ინდექსი რუნაში სტრიქონში, ხოლო r არის თავად რუნა (სიმბოლო).

ამ გზით, Go-ში სტრიქონის იტერაცია სწორად მუშაობს მრავალენოვან სიმბოლოებთან და არ გატეხავს მრავალბაიტიან სიმბოლოებს UTF-8-ში.