Junior — Middle
Bir dizedeki bir karakterin bayt cinsinden boyutunu nasıl belirleriz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, bir string (string) UTF-8 kodlamasında bayt dizisini temsil eder. Bir karakterin (bir rune) kaç bayt tuttuğunu belirlemek için, farklı karakterlerin farklı sayıda bayt tutabileceğini göz önünde bulundurmak gerekir.
Belirli bir karakterin bayt cinsinden boyutunu öğrenmek istiyorsanız, string'i []rune dilimine dönüştürebilir ve orijinal string'in uzunluğunu rune diliminin uzunluğu ile karşılaştırabilirsiniz.
Örnek:
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("Karakter: %c %s\n", r, ""+r)
fmt.Printf("%c karakteri %d bayt tutar\n", r, width)
w = width
}
}
Burada, utf8.DecodeRuneInString fonksiyonu, bir rune ve onun kapladığı bayt sayısını döndürür. Bu sayede, her karakterin bayt cinsinden boyutu belirlenebilir.