Junior — Middle
Jaké informace vrací funkce len při zpracování řetězce?
sobes.tech AI
Odpověď od AI
V jazyce Go funkce len, když je aplikována na řetězec, vrací počet bajtů v tomto řetězci, nikoli počet znaků (rune).
To je způsobeno tím, že řetězce v Go jsou uloženy ve formátu UTF-8, kde jeden znak může zabírat od 1 do 4 bajtů. Proto len vrací délku v bajtech.
Příklad:
package main
import (
"fmt"
)
func main() {
s := "Привет" // ruské slovo
fmt.Println(len(s)) // Zobrazí počet bajtů, například 12
}
Pokud chcete získat počet znaků (rune), musíte převést řetězec na slice rune:
runes := []rune(s)
fmt.Println(len(runes)) // Zobrazí počet znaků, například 6
Takže, len u řetězce je délka v bajtech, nikoli počet znaků.