Sobes.tech
Junior — Middle

Mit ad vissza a len függvény szöveg feldolgozásakor?

sobes.tech MI

Válasz az MI-től

A Go nyelvben, amikor a len függvényt egy stringre alkalmazzuk, akkor az a stringben lévő byte-ok számát adja vissza, nem a karakterek (rune-ok) számát.

Ez azért van, mert a Go-ban a stringek UTF-8 formátumban vannak tárolva, ahol egy karakter 1-től 4 byte-ig terjedhet. Ezért a len a byte-ok számát adja vissza.

Példa:

package main
import (
    "fmt"
)

func main() {
    s := "Привет" // orosz szó
    fmt.Println(len(s)) // Megmutatja a byte-ok számát, pl. 12
}

Ha a karakterek (rune-ok) számát szeretnéd megtudni, akkor a stringet rune slice-é kell alakítani:

runes := []rune(s)
fmt.Println(len(runes)) // Megmutatja a karakterek számát, pl. 6

Tehát, a len egy string esetén a byte-ok hosszát adja meg, nem a karakterek számát.