Sobes.tech
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.