Sobes.tech
Junior — Middle

Ի՞նչ արժեք է վերադարձնում length մեթոդը երբ այն կանչվում է տողին:

sobes.tech AI

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

Go-ում, երբ len մեթոդը կանչվում է տողին, այն վերադարձնում է տողի բայթերի քանակը, ոչ թե նիշերի քանակը: Դա պայմանավորված է նրանով, որ Go-ի տողերը UTF-8 կոդավորված բայթների հաջորդականություններ են: Եթե տողը պարունակում է միայն ASCII նիշեր, բայթերի քանակը համընկնում է նիշերի քանակին: Բայց եթե տողում շատալեզու նիշեր կան, յուրաքանչյուրը կարող է զբաղեցնել մի քանի բայթ:

Օրինակ՝

package main
import (
    "fmt"
)

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

Նիշերի (рунների) քանակը հաշվելու համար անհրաժեշտ է օգտագործել utf8.RuneCountInString ֆունկցիան unicode/utf8 փաթեթից։