Sobes.tech
Junior — Middle

რა ინფორმაციას აბრუნებს len ფუნქცია სტრიქონის დამუშავებისას?

sobes.tech AI

პასუხი AI-სგან

გო ენაში, როდესაც ფუნქცია len ერთ სტრიქონზეა გამოყენებული, ის ამ სტრიქონის ბაიტების რაოდენობას აბრუნებს, არა სიმბოლოების (rune-ების) რაოდენობას.

ეს დაკავშირებულია იმასთან, რომ გოში სტრიქონები ინახება 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 ერთ სტრიქონზე არის ბაიტების სიგრძე, არა სიმბოლოების რაოდენობა.