Sobes.tech
Junior — Middle

როგორ ხორციელდება სტრიქონები და როგორ არის დაკავშირებული რუნებთან Go ენისთვის?

sobes.tech AI

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

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

Rune-ები (rune) არის ტიპი, რომელიც წარმოადგენს Unicode კოდსაწინაურობას (int32). Unicode სიმბოლოებთან მუშაობისთვის, სტრიქონი გარდაიქმნება rune-ების სერიად, რაც საშუალებას აძლევს სწორად იმუშაოს მრავალბაიტიანი სიმბოლოებით.

მაგალითი:

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

runes := []rune(s) // სტრიქონის გარდაქმნა რუნების სერიად
fmt.Println(runes[0]) // პირველი სიმბოლო რუნად

ამიტომ, Go-ში სტრიქონები ბაიტების სერიებია, ხოლო რუნები — ცალკეული Unicode სიმბოლოებია, რაც საშუალებას აძლევს სწორად იმუშაოს მრავალენოვან ტექსტებთან.