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 տողի համար բայթերի երկարությունն է, ոչ թե նիշերի։