Junior — Middle
Akú hodnotu vráti funkcia len pri použití na reťazcový typ údajov?
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 (rune). 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áť viac bajtov.
Príklad:
s := "Привет"
fmt.Println(len(s)) // Zobrazí počet bajtov, napríklad 12
Ak chcete získať počet znakov (rune), musíte reťazec previesť na slice rune-ov:
fmt.Println(len([]rune(s))) // Zobrazí počet znakov, napríklad 6