РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
223 of 1593 menu

Константа utf8.UTFMax

Константа utf8.UTFMax определяет максимальную длину в байтах, которую может занимать один символ Unicode (руна) при кодировании в UTF-8. Эта константа полезна при выделении буферов для работы с рунами, так как гарантирует, что буфер будет достаточно большим для хранения любой кодовой точки.

Синтаксис

const UTFMax = 4

Пример

Давайте выведем значение константы utf8.UTFMax:

package main import ( "fmt" "unicode/utf8" ) func main() { fmt.Println(utf8.UTFMax) }

Результат выполнения кода:

4

Пример

Давайте используем константу для выделения буфера для кодирования руны:

package main import ( "fmt" "unicode/utf8" ) func main() { buf := make([]byte, utf8.UTFMax) r := '⌘' n := utf8.EncodeRune(buf, r) fmt.Printf("Rune: %c, bytes: %d\n", r, n) fmt.Printf("Buffer: %q\n", buf[:n]) }

Результат выполнения кода:

"Rune: ⌘, bytes: 3" "Buffer: \"⌘\""

Пример

Давайте проверим, что все руны действительно помещаются в буфер размером utf8.UTFMax:

package main import ( "fmt" "unicode/utf8" ) func main() { runes := []rune{'A', '±', '世', '𠀀'} buf := make([]byte, utf8.UTFMax) for _, r := range runes { n := utf8.EncodeRune(buf, r) fmt.Printf("%c takes %d bytes\n", r, n) } }

Результат выполнения кода:

"A takes 1 bytes" "± takes 2 bytes" "世 takes 3 bytes" "𠀀 takes 4 bytes"

Смотрите также

  • константу utf8.MaxRune,
    которая определяет максимальное значение кодовой точки Unicode
  • функцию utf8.RuneLen,
    которая возвращает количество байт для руны
  • функцию utf8.EncodeRune,
    которая кодирует руну в байтовый срез
  • функцию utf8.DecodeRune,
    которая декодирует руну из байтового среза
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить