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
}
სიმბოლოების (Rune-ების) რაოდენობის გამოთვლისთვის, საჭიროა გამოიყენოთ utf8.RuneCountInString ფუნქცია unicode/utf8 პაკეტიდან.