Sobes.tech
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