Sobes.tech
Junior — Middle

Ինչ արժեք է վերադարձնում len ֆունկցիան, երբ այն կիրառվում է տողային տվյալների տիպի վրա?

sobes.tech AI

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

Go լեզվում, երբ ֆունկցիան len կիրառվում է տողին, այն վերադարձնում է այդ տողի բայթերի քանակը, ոչ թե նիշերի (rune-ների) քանակը: Դա պայմանավորված է նրանով, որ Go-ում տողերը պահվում են UTF-8 ձևաչափով, որտեղ մեկ նիշը կարող է զբաղեցնել մի քանի բայթ:

Օրինակ՝

s := "Привет"
fmt.Println(len(s)) // Ցույց կտա բայթերի քանակը, օրինակ՝ 12

Եթե ցանկանում եք ստանալ նիշերի (rune-ների) քանակը, պետք է տողը փոխակերպել rune-ների սլայսի:

fmt.Println(len([]rune(s))) // Ցույց կտա նիշերի քանակը, օրինակ՝ 6