Sobes.tech
Junior — Middle

პროგრამირებაში სტრიქონის სიმბოლოების შემოვლაში რა მახასიათებლები არსებობს?

sobes.tech AI

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

Go-ში სტრიქონები წარმოდგენილია ბაიტების სერიად, მაგრამ ხშირად შეიცავს UTF-8 კოდირებით სიმბოლოებს, სადაც ერთი სიმბოლო (Rune) შეიძლება რამდენიმე ბაიტი იყოს. როდესაც სიგრძის მიხედვით გადიხართ სტრიქონს (მაგალითად, for i := 0; i < len(s); i++) თქვენ გადიხართ ბაიტებს, არა სიმბოლოებს, რაც შეიძლება გამოიწვიოს მრავალბაიტიანი სიმბოლოების არასწორი დამუშავება.

სწორი სიმბოლოების გადასავლელად გამოიყენება for range ციკლი, რომელიც იტერირებს Unicode კოდ პუნქტებზე (Rune-ებზე):

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

აქ, i არის პირველი ბაიტის ინდექსი სტრიქონში, ხოლო r თავად Rune-ია. ეს მნიშვნელოვანია მრავალენოვანი ტექსტების და ASCII-ს გარეთ სიმბოლოების სწორად დამუშავებისთვის.