Sobes.tech
Junior

Ի՞նչ է ներկայացնում string տվյալների տիպը Golang լեզվում։

sobes.tech AI

Պատասխան AI-ից

Golang-да string՝ փոփոխական չհետաձգվող բայթների հաջորդականություն է:

Հիմնական հատկանիշներ՝

  • Չփոխվողություն: Միայն ստեղծելուց հետո, տողը չի կարող փոխվել: Յուրաքանչյուր գործողություն, որը փոխում է տողը, իրականում ստեղծում է նոր տող:
  • Ներկայացում: Տողը պարունակում է բայթների հաջորդականություն: Դեպքաբանականորեն, Golang-ը ենթադրում է, որ այդ բայթները ներկայացնում են UTF-8 կոդավորված տեքստ:
  • Երկարություն: Տողի երկարությունը (len(s)) վերադարձնում է բայտների քանակը, ոչ թե ռունաների (նշանների) քանակը:
  • Ինդեքսավորում: Տողի տարրերին մուտք գործելու համար օգտագործվում է ինդեքսը (s[i]), որը վերադարձնում է այդ ինդեքսի բայթը:
  • Ռունաներ: Թե՞ նշանների (ռունաների) հետ աշխատելու համար, օգտագործվում է for range ցիկլը, որը դեկոդավորում է UTF-8-ը և տրամադրում ռունաներ և նրանց ինդեքսները:

Օրինակ՝

// Տողը սկզբնավորել
s := "Привет, мир!" // 23 բայթ, 12 ռունա

// Տողի երկարությունը (բայթներով)
byteLength := len(s) // 23

// Բայթի մուտք դեպի ինդեքսով
firstByte := s[0] // firstByte = 208 (բայթ՝ 'П' UTF-8-ում)

// Ռունաների վրա կրկնություն
runeCount := 0
for index, runeValue := range s {
	// index - ռունայի սկզբնական ինդեքսը (բայթներով)
	// runeValue - դեկոդավորված ռունան
	runeCount++
}
// runeCount = 12