Junior — Middle
Функсияи дарунсохти len дар вақти даъват ба сатр чӣ натиҷа медиҳад?
sobes.tech AI
Ҷавоб аз AI
Дар Go, функсияи дарунсохти len вақте ки ба сатр даъват карда мешавад, шумораи байтҳоро дар он сатр бармегардонад, на шумораи аломатҳо (рунаҳо).
Ин ба он вобаста аст, ки сатрҳо дар Go пайдарпайии байтҳо мебошанд, ки дар кодекси UTF-8 кодгузорӣ шудаанд. Агар сатр танҳо аломатҳои ASCII дошта бошад, шумораи байтҳо баробар ба шумораи аломатҳо аст. Аммо агар дар сатр аломатҳои бисёрбайтӣ (масалан, кириллӣ, emoji) бошанд, len ҷамъоварии байтҳоро бармегардонад, на шумораи аломатҳо.
Масалан:
s := "Привет"
fmt.Println(len(s)) // Шумораи байтҳоро нишон медиҳад, масалан 12
runes := []rune(s)
fmt.Println(len(runes)) // Шумораи аломатҳоро нишон медиҳад, масалан 6
Агар хоҳед, ки шумораи аломатҳо (рунаҳо) гиред, бояд сатрро ба срези рунаҳо табдил диҳед ва дарозии онро гиред.