Sobes.tech
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

Агар хоҳед, ки шумораи аломатҳо (рунаҳо) гиред, бояд сатрро ба срези рунаҳо табдил диҳед ва дарозии онро гиред.