Junior — Middle
Вақте ки методи length дар сатр даъват карда мешавад, кадом арзишро бармегардонад?
sobes.tech AI
Ҷавоб аз AI
Дар Go, усули len вақте ки ба сатр даъват мешавад, шумораи байтҳоро дар сатр бармегардонад, на шумораи рамзҳоро. Ин ба он вобаста аст, ки сатрҳо дар Go пайдарпайии байтҳо дар кодекси UTF-8 мебошанд. Агар сатр танҳо рамзҳои ASCII дошта бошад, шумораи байтҳо бо шумораи рамзҳо мувофиқат мекунад. Аммо агар рамзҳои бисёрзабона бошанд, ҳар кадом метавонад чанд байтро ишғол кунад.
Масалан:
package main
import (
"fmt"
)
func main() {
s := "Привет"
fmt.Println(len(s)) // Шумораи байтҳоро нишон медиҳад, масалан 12
}
Барои ҳисоб кардани шумораи рамзҳо (рунҳо), бояд функсияи utf8.RuneCountInString аз баста unicode/utf8 истифода шавад.