Junior — Middle
Жолдо бир белгинин байтта алган өлчөмүн кантип аныктоо керек?
sobes.tech AI
AIден жооп
Go тилинде, сап (string) UTF-8 коддоо менен байттардын үзүндүсүн көрсөтөт. Бир белгинин (руна) канча байт алганынын аныктоо үчүн, ар кандай белгилер ар башка байт санын алышы мүмкүн экенин эске алуу керек.
Эгер конкреттүү белгинин байттагы өлчөмүн билгиңиз келсе, сапты []rune бөлүгүнө айландырып, оригиналдуу саптын узундугун руна бөлүгүнүн узундугу менен салыштырып көрүңүз.
Мисал:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
s := "Привет"
for i, w := 0, 0; i < len(s); i += w {
r, width := utf8.DecodeRuneInString(s[i:])
fmt.Printf("Белги: %c 2 байт\n", r, width)
w = width
}
}
Бул жерде, utf8.DecodeRuneInString руна жана ал канча байтты ээлегенин кайтарат. Ошентип, ар бир белгинин байттагы өлчөмүн аныктоого болот.