Sobes.tech
Junior — Middle

Millist väärtust tagastab meetod length, kui seda kutsutakse stringil?

sobes.tech AI

Vastus AI-lt

Go keeles, kui meetod len kutsutakse stringi peal, tagastab see stringi baitide arvu, mitte märkide arvu. See on tingitud sellest, et Go-s on stringid UTF-8 kodeeritud baitide järjestused. Kui string sisaldab ainult ASCII märke, siis baitide arv vastab märkide arvule. Kuid mitmekeelsed märgid võivad igaüks võtta mitu baiti.

Näide:

package main
import (
    "fmt"
)

func main() {
    s := "Привет"
    fmt.Println(len(s)) // Näitab baitide arvu, näiteks 12
}

Märkide (rune) arvu arvutamiseks tuleb kasutada funktsiooni utf8.RuneCountInString unicode/utf8 paketist.