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