Sobes.tech
Junior — Middle

Вақте ки дар барномаи барномасозӣ ба гардиш кардани аломатҳои сатр мебарем, кадом хусусиятҳо мавҷуданд?

sobes.tech AI

Ҷавоб аз AI

Дар Го, сатрҳо ҳамчун пайдарпайии байтҳо муаррифӣ мешаванд, аммо онҳо аксар вақт дар кодекодии UTF-8 дорои аломатҳо мебошанд, ки дар он як аломат (руна) метавонад чанд байтро ишғол кунад. Вақте ки шумо сатрро бо индексҳо мегузаронед (масалан, for i := 0; i < len(s); i++) шумо ба байтҳо мегузаред, на ба аломатҳо, ки метавонад ба коркарди нодурусти аломатҳои бисёрбайтӣ оварда расонад.

Барои гузаронидани дурустии аломатҳо, истифодаи цикл for range ки дар он ба рунаҳо (нуқтаҳои кодии Unicode) такрор мешавад, истифода мешавад:

s := "Привет"
for i, r := range s {
    fmt.Printf("индекс: %d, аломат: %c\n", i, r)
}

Ин ҷо, i индекс ба байти аввалини руна дар сатр аст, ва r худи руна мебошад. Ин барои коркарди дурустии матнҳои бисёрзабон ва аломатҳои хориҷ аз ASCII муҳим аст.