Junior — Middle
Ի՞նչ է ներկայացնում [] օպերատորի գործարկման արդյունքը տողային տվյալների տիպի համար։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, օպերատոր [] տիպի տվյալների համար օգտագործվում է տողից բայթների կտոր ստանալու կամ մեկ բայթ առանձին ըստ ինդեքսի։ Go-ում տողը անփոփոխ բայթների անընդհատականություն է (UTF-8): Երբ մուտք ենք գործում str[i], վերադարձվում է byte տիպի բայթ (uint8-ի մականուն), և ոչ թե նիշ սովորական իմաստով, քանի որ Unicode նիշերը կարող են զբաղեցնել մի քանի բայթ։
Օրինակ՝
s := "Привет"
fmt.Println(s[0]) // Ցուցադրում է բայթ, որը համապատասխանում է առաջին մասի նիշի 'П'
fmt.Println(string(s[0])) // Ցուցադրում է սխալ նիշ, քանի որ դա ամբողջական UTF-8 նիշ չէ
// Նիշեր (runes) ստանալու համար անհրաժեշտ է փոխարկել տողը rune-ների կտորին՝
r := []rune(s)
fmt.Println(string(r[0])) // Ցուցադրում է 'П'
Այսպիսով, օպերատոր [] տողերի համար վերադարձնում է բայթ ըստ ինդեքսի, ոչ թե Unicode նիշ։