Sobes.tech
Junior — Middle

Ինչ տեղեկատվություն է վերադարձնում len ֆունկցիան տողը մշակելիս?

sobes.tech AI

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

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

Սա կապված է այն բանի հետ, որ Go-ում տողերը պահվում են UTF-8 ձևաչափով, որտեղ մեկ նիշը կարող է զբաղեցնել 1-ից 4 բայթ։ Հետևաբար, len վերադարձնում է երկարությունը բայթերով:

Օրինակ՝

package main
import (
    "fmt"
)

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

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

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

Այսպիսով, len տողի համար բայթերի երկարությունն է, ոչ թե նիշերի։