Junior — Middle
Kā noteikt viena rakstzīmes izmēru baitos?
sobes.tech AI
Atbilde no AI
Go valodā, rinda (string) ir UTF-8 kodētas baitu secība. Lai noteiktu, cik baitu aizņem viens simbols (runa), jāņem vērā, ka dažādiem simboliem var būt dažāds baitu skaits.
Ja vēlaties uzzināt konkrēta simbola izmēru baitos, varat pārveidot virkni par rune masīvu ([]rune) un salīdzināt sākotnējās virknes garumu ar rune masīva garumu.
Piemērs:
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("Simbols: %c aizņem %d baitus\n", r, width)
w = width
}
}
Šeit, utf8.DecodeRuneInString atgriež rune un skaitu baitu, ko tā aizņem. Tādējādi, var noteikt katra simbola izmēru baitos.