Junior — Middle
Ինչպե՞ս են իրականացնում տողերը և ինչպես են կապված ռունների հետ Go լեզվում։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում տողերը ներկայացված են string տիպով, որը անփոփոխ բայթների հաջորդականություն է, սովորաբար UTF-8 կոդավորմամբ: Սա նշանակում է, որ տողը բայթների հաջորդականություն է, ոչ թե նշանների:
Ռուներ (rune)՝ դա տիպ է, որը ներկայացնում է Unicode կոդային կետ (int32): Unicode նշանների հետ աշխատելու համար, տողը փոխարկվում է ռուների հաջորդականության, ինչը թույլ է տալիս ճիշտ մշակել բազմաբայթ նշանները:
Օրինակ՝
s := "Привет"
for i, r := range s {
fmt.Printf("%d: %c\n", i, r) // i — բայթի ինդեքս, r — ռուն (նշան)
}
runes := []rune(s) // տողը փոխարկում է ռուների հաջորդականության
fmt.Println(runes[0]) // առաջին նշանը որպես ռուն
Այսպիսով, Go-ում տողերը բայթների հաջորդականություններ են, իսկ ռուները՝ առանձին Unicode նշաններ, ինչը թույլ է տալիս ճիշտ աշխատել բազմալեզու տեքստերի հետ։