Назад к вопросам
Junior — Middle
75
Как определить размер в байтах, занимаемый одним символом в строке?
Ответ от нейросети
sobes.tech 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 занимает %d байт\n", r, width)
w = width
}
}
Здесь utf8.DecodeRuneInString возвращает руну и количество байт, которое она занимает. Таким образом, можно определить размер каждого символа в байтах.