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

Функция utf8.RuneLen

Функция utf8.RuneLen определяет длину в байтах для переданной руны в кодировке UTF-8. В качестве единственного параметра она принимает значение типа rune и возвращает целое число — количество байт (от 1 до 4), которое занимает эта руна в UTF-8.

Если переданное значение не является допустимой кодовой точкой Unicode, функция вернет -1. Это полезно для проверки валидности рун перед их кодированием или записью в байтовый буфер.

Синтаксис

utf8.RuneLen(r)

Пример

Определим длину в байтах для латинской буквы 'a':

package main import ( "fmt" "unicode/utf8" ) func main() { r := 'a' res := utf8.RuneLen(r) fmt.Println(res) }

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

1

Пример

Определим длину в байтах для кириллической буквы 'Я':

package main import ( "fmt" "unicode/utf8" ) func main() { r := 'Я' res := utf8.RuneLen(r) fmt.Println(res) }

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

2

Пример

Определим длину в байтах для иероглифа '𠀋' (U+2000B):

package main import ( "fmt" "unicode/utf8" ) func main() { r := '𠀋' res := utf8.RuneLen(r) fmt.Println(res) }

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

4

Пример

Проверим поведение функции на невалидном значении (например, суррогатная пара):

package main import ( "fmt" "unicode/utf8" ) func main() { r := rune(0xDC00) // невалидная кодовая точка res := utf8.RuneLen(r) fmt.Println(res) }

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

-1

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

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