Sobes.tech
Junior — Middle

Kādu rezultātu atgriež iebūvētā funkcija len, izsaucot to uz virknes?

sobes.tech AI

Atbilde no AI

Go iebūvētā funkcija len, izsaucot to uz virknes, atgriež šīs virknes baitu skaitu, ne simbolu (runa) skaitu.

Tas ir tāpēc, ka Go virknes ir secības no baitiem, kas kodēti UTF-8. Ja virkne satur tikai ASCII simbolus, baitu skaits ir vienāds ar simbolu skaitu. Bet, ja virkne satur daudzbaitu simbolus (piemēram, kirilicu, emoji), tad len atgriezīs baitu summu, ne simbolu skaitu.

Piemērs:

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

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

Ja vēlaties iegūt simbolu (runa) skaitu, jums jākonvertē virkne uz runu masīvu un jāņem tā garums.