Junior — Middle
Kādu vērtību atgriež length metode, izsaucot to uz virknes?
sobes.tech AI
Atbilde no AI
Go valodā, len metode, izsaucot to uz virknes, tas atgriež baitu skaitu virknes, ne rakstzīmju skaitu. Tas ir tāpēc, ka Go virknes ir baitu secības, kodētas UTF-8 formātā. Ja virkne satur tikai ASCII rakstzīmes, baitu skaits atbilst rakstzīmju skaitam. Taču, ja ir daudzvalodu rakstzīmes, katra no tām var aizņemt vairākus baitus.
Piemērs:
package main
import (
"fmt"
)
func main() {
s := "Привет"
fmt.Println(len(s)) // Parādīs baitu skaitu, piemēram, 12
}
Lai saskaitītu rakstzīmju (rune) skaitu, ir jāizmanto utf8.RuneCountInString funkcija no unicode/utf8 pakotnes.