Junior — Middle
Bir sətir üzərində length metodu çağırıldıqda hansı dəyər qaytarılır?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, len metodu bir sətir üzərində çağırıldıqda, sətirin bayt sayını qaytarır, simvolların sayını yox. Bu, Go'dakı sətirlərin UTF-8 kodlamasında baytların ardıcıllığı olması ilə əlaqədardır. Əgər sətir yalnız ASCII simvolları ehtiva edirsə, bayt sayı simvolların sayı ilə üst-üstə düşür. Amma çoxdilli simvollar varsa, hər biri bir neçə bayt tuta bilər.
Misal:
package main
import (
"fmt"
)
func main() {
s := "Привет"
fmt.Println(len(s)) // Baytların sayını göstərəcək, məsələn 12
}
Simvolların (rune) sayını hesablamaq üçün, unicode/utf8 paketindən utf8.RuneCountInString funksiyasını istifadə etmək lazımdır.