Sobes.tech
Junior — Middle

Ինչ հատկանիշներ կան տողերի նիշերի շրջայցի ժամանակ ծրագրավորման մեջ?

sobes.tech AI

Պատասխան AI-ից

Go-ում տողերը ներկայացված են որպես բայթների հաջորդականություն, բայց հաճախ պարունակում են UTF-8 կոդավորմամբ նշաններ, որտեղ մեկ նշան (ռունա) կարող է զբաղեցնել մի քանի բայթ: Երբ անցնում եք տողը ցուցիչներով (օրինակ, for i := 0; i < len(s); i++) անցնում եք բայթների վրա, ոչ թե նշանների, ինչը կարող է dẫnել սխալ մշակման բազմաբայթ նշանների դեպքում:

Ճիշտ նշանների անցնելու համար օգտագործվում է for range ցիկլը, որը անցնում է ռունաների (Unicode կոդային կետեր) վրա:

s := "Привет"
for i, r := range s {
    fmt.Printf("ցուցիչ: %d, նշան: %c\n", i, r)
}

Այստեղ, i ռունայի առաջին բայթի ցուցիչն է տողում, իսկ r ինքն է ռունան: Սա կարևոր է բազմալեզու տեքստերով և ASCII-ից դուրս նշանների ճիշտ մշակման համար։