Sobes.tech
Junior — Middle

len fonksiyonu bir dize işlenirken hangi bilgiyi döndürür?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, len fonksiyonu bir dizeye uygulandığında, bu dizenin bayt sayısını döner, karakter sayısını (rune) değil.

Bu, Go'daki dizelerin UTF-8 formatında saklanmasından kaynaklanır; burada bir karakter 1 ila 4 bayt arasında yer kaplayabilir. Bu nedenle, len bayt cinsinden uzunluğu döner.

Örnek:

package main
import (
    "fmt"
)

func main() {
    s := "Привет" // Rusça kelime
    fmt.Println(len(s)) // Bayt sayısını gösterecek, örneğin 12
}

Karakter (rune) sayısını almak istiyorsanız, diziyi rune dilimine dönüştürmelisiniz:

runes := []rune(s)
fmt.Println(len(runes)) // Karakter sayısını gösterecek, örneğin 6

Bu nedenle, len bir dize için bayt uzunluğudur, karakter değil.