Junior — Middle
Millist teavet tagastab funktsioon len stringi töötlemisel?
sobes.tech AI
Vastus AI-lt
Keeles Go puhul tagastab len funktsioon stringi puhul selle baitide arvu, mitte märkide (rune) arvu.
See on tingitud sellest, et Go-s salvestatakse stringe UTF-8 formaadis, kus üks märk võib võtta 1 kuni 4 baiti. Seetõttu tagastab len baitide pikkuse.
Näide:
package main
import (
"fmt"
)
func main() {
s := "Привет" // vene sõna
fmt.Println(len(s)) // Näitab baitide arvu, näiteks 12
}
Kui soovite saada märkide (rune) arvu, peate stringi konverteerima rune-slice-ks:
runes := []rune(s)
fmt.Println(len(runes)) // Näitab märkide arvu, näiteks 6
Seega, len stringi puhul näitab baitide pikkust, mitte märkide arvu.