Sobes.tech
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.