Sobes.tech
Junior — Middle

Kādu informāciju atgriež funkcija len, apstrādājot virkni?

sobes.tech AI

Atbilde no AI

Go valodā funkcija len, kad tiek piemērota virknei, atgriež baitu skaitu šajā virknes, nevis rakstzīmju (rune) skaitu.

Tas ir tāpēc, ka Go virknes tiek glabātas UTF-8 formātā, kur viena rakstzīme var aizņemt no 1 līdz 4 baitiem. Tādēļ len atgriež garumu baitos.

Piemērs:

package main
import (
    "fmt"
)

func main() {
    s := "Привет" // krievu vārds
    fmt.Println(len(s)) // Parādīs baitu skaitu, piemēram, 12
}

Ja vēlaties iegūt rakstzīmju (rune) skaitu, jums jākonvertē virkne uz rune skaitļu masīvu:

runes := []rune(s)
fmt.Println(len(runes)) // Parādīs rakstzīmju skaitu, piemēram, 6

Tādējādi, len virknē ir baitu garums, nevis rakstzīmju skaits.