Junior — Middle
Aké informácie vracia funkcia len pri spracovaní reťazca?
sobes.tech AI
Odpoveď od AI
V jazyku Go funkcia len, keď je aplikovaná na reťazec, vráti počet bajtov v tomto reťazci, nie počet znakov (runeov).
To je spôsobené tým, že reťazce v Go sú uložené vo formáte UTF-8, kde jeden znak môže zaberáť od 1 do 4 bajtov. Preto len vracia dĺžku v bajtoch.
Príklad:
package main
import (
"fmt"
)
func main() {
s := "Привет" // ruské slovo
fmt.Println(len(s)) // Zobrazí počet bajtov, napríklad 12
}
Ak chcete získať počet znakov (runeov), musíte reťazec previesť na slice runeov:
runes := []rune(s)
fmt.Println(len(runes)) // Zobrazí počet znakov, napríklad 6
Takže, len pri reťazci je dĺžka v bajtoch, nie v znakoch.