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-ს გარეთ სიმბოლოების სწორად დამუშავებისთვის.