Sobes.tech
Junior — Middle

Программалоодо жолдун символдорун карап чыгууда кандай өзгөчөлүктөр бар?

sobes.tech AI

AIден жооп

Go'да жолдор байттардын тизмеги катары көрсөтүлөт, бирок алар көбүнчө 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 тышкары белгилер менен туура иштөө үчүн маанилүү.