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.