Junior — Middle
Функсияи len дар вақти коркарди сатр кадом маълумотро бармегардонад?
sobes.tech AI
Ҷавоб аз AI
Дар забони Go, функсияи len вақте ки ба сатр татбиқ мешавад, шумораи байтҳоро дар он сатр бармегардонад, на шумораи рамзҳо (runes).
Ин ба он вобаста аст, ки сатрҳо дар Go дар формати UTF-8 нигоҳ дошта мешаванд, ки дар он як рамз метавонад аз 1 то 4 байт ишғол кунад. Аз ин рӯ, len дарозиро дар байтҳо бармегардонад.
Масалан:
package main
import (
"fmt"
)
func main() {
s := "Привет" // калимаи русӣ
fmt.Println(len(s)) // Шумораи байтҳоро нишон медиҳад, масалан 12
}
Агар хоҳед, ки шумораи рамзҳоро (runes) гиред, бояд сатрро ба срези rune табдил диҳед:
runes := []rune(s)
fmt.Println(len(runes)) // Шумораи рамзҳоро нишон медиҳад, масалан 6
Аз ин рӯ, len барои сатр дарозӣ дар байтҳо аст, на дар рамзҳо.