Sobes.tech
Junior — Middle

Milyen értéket ad vissza a length metódus, amikor egy stringen hívják meg?

sobes.tech MI

Válasz az MI-től

Go-ban a len metódus, amikor egy stringen hívják meg, a string bájtjainak számát adja vissza, nem a karakterek számát. Ez azért van, mert a Go-ban a stringek UTF-8 kódolású bájtok sorozatai. Ha a string csak ASCII karaktereket tartalmaz, akkor a bájtok száma megegyezik a karakterek számával. De ha többnyelvű karakterek vannak, mindegyik több bájtot foglalhat el.

Példa:

package main
import (
    "fmt"
)

func main() {
    s := "Привет"
    fmt.Println(len(s)) // Megmutatja a bájtok számát, például 12
}

A karakterek (rune-ok) számának meghatározásához a unicode/utf8 csomag utf8.RuneCountInString függvényét kell használni.