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.