Sobes.tech
Junior — Middle

Bir simvolun sətirdə tutduğu bayt ölçüsünü necə müəyyən etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, sətir (string) UTF-8 kodlaşdırmasında baytların ardıcıllığını təmsil edir. Bir simvolun (runa) neçə bayt tutduğunu müəyyən etmək üçün, müxtəlif simvolların fərqli sayda bayt tutduğunu nəzərə almaq lazımdır.

Əgər müəyyən bir simvolun bayt ölçüsünü bilmək istəyirsinizsə, sətiri []rune diliminə çevirə və orijinal sətirin uzunluğunu rune diliminin uzunluğu ilə müqayisə edə bilərsiniz.

Nümunə:

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("Simvol: %c %d bayt\n", r, width)
        w = width
    }
}

Burada, utf8.DecodeRuneInString rune və onun tutduğu bayt sayını qaytarır. Bu yolla, hər bir simvolun bayt ölçüsü müəyyən edilə bilər.