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.