Sobes.tech
Junior — Middle

Koje informacije funkcija len vraća prilikom obrade niza?

sobes.tech АИ

Одговор од АИ

U jeziku Go, funkcija len primenjena na niz vraća broj bajtova u tom nizu, a ne broj karaktera (runeova).

To je zato što se nizovi u Go-u čuvaju u UTF-8 formatu, gde jedan karakter može zauzimati od 1 do 4 bajta. Zbog toga len vraća dužinu u bajtovima.

Primer:

package main
import (
    "fmt"
)

func main() {
    s := "Привет" // ruska reč
    fmt.Println(len(s)) // Prikazuje broj bajtova, na primer 12
}

Ako želite da dobijete broj karaktera (runeova), morate konvertovati niz u slice runeova:

runes := []rune(s)
fmt.Println(len(runes)) // Prikazuje broj karaktera, na primer 6

Dakle, len za niz je dužina u bajtovima, a ne u karakterima.