Sobes.tech
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 նշաններ, ինչը թույլ է տալիս ճիշտ աշխատել բազմալեզու տեքստերի հետ։