Sobes.tech
Senior

Ինչ է տողը Go-ում: Ինչպիսի՞ն է նրա կառուցվածքը և առանձնահատկությունները։

sobes.tech AI

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

Go լեզվում, տողը (string) անփոփոխ հաջորդականություն է բայթների, սովորաբար ներկայացնում է տեքստ UTF-8 կոդավորմամբ: Կառուցվածքային առումով, տողը իրականացվում է երկու դաշտերով կառուցվածքով՝ ցուցիչ բայթների զանգվածին և երկարություն:

Go-ի տողերի առանձնահատկությունները՝

  • Անփոփոխություն՝ ստեղծելուց հետո, տողը չի կարող փոխվել: Յուրաքանչյուր գործողություն, որը փոխում է նրա պարունակությունը, ստեղծում է նոր տող:
  • UTF-8՝ տողերը պահում են բայթեր UTF-8-ում, ինչը թույլ է տալիս աշխատել Unicode նշանների հետ:
  • Մուտքագումար ըստ բայթների՝ տողի ինդեքսավորումը վերադարձնում է բայթ, ոչ նշան (rune): Նշանների հետ աշխատելու համար անհրաժեշտ է օգտագործել unicode/utf8 փաթեթը կամ փոխարկել տողը rune-ների սլայսի:

Սովորական տողի կառուցվածքի օրինակ՝

// տողը Go-ում մոտավորապես այսպես:
type stringStruct struct {
    ptr *byte
    len int
}

Տողի հետ աշխատանքի օրինակ՝

s := "Привет"
fmt.Println(len(s)) // բայթերի քանակը
runes := []rune(s)
fmt.Println(len(runes)) // նշանների (rune) քանակը