Шаг 31.
Язык программирования Go.
Функции пакета utf8

    На этом шаге рассмотрим функции пакета utf8 для работы со строками в Go.

    Пакет unicode/utf8 содержит несколько функций для выполнения операций со строками и срезами типа []bytes, хранящими байты в кодировке UTF-8, многие из которых показаны в табл. 1. Пакет импортируется под именем "unicode/utf8". Переменная b – это срез типа []byte, s – строка типа string, и c – кодовый пункт Юникода типа rune.

Таблица 1. Функции из пакета utf8
Функция Описание/результат
utf8.DecodeLastRune(b) Последний символ (значение типа rune) в b и количество байт, занимаемое им, или U+FFFD (символ замены "?"), и 0 – если b не заканчивается допустимым значением типа rune
utf8.DecodeLastRuneInString(s) То же, что и функция utf8.DecodeLastRune(), только принимает строку, а не срез
utf8.DecodeRune(b) Первый символ (значение типа rune) в b и количество байт, занимаемое им, или U+FFFD (символ замены "?"), и 0 – если b не начинается допустимым значением типа rune
utf8.DecodeRuneInString(s) То же, что и функция utf8.DecodeRune(), только принимает строку, а не срез
utf8.EncodeRune(b,c) Записывает c в b в виде последовательности байт в кодировке UTF-8 и возвращает число записанных байтов (в срезе b должно быть достаточно свободного места)
utf8.FullRune(b) true, если b начинается с допустимого значения типа rune в кодировке UTF-8
utf8.FullRuneInString(s) true, если s начинается с допустимого значения типа rune в кодировке UTF-8
utf8.RuneCount(b) То же, что и функция utf8.RuneCountInString(), но работает со значением типа []byte
utf8.RuneCountInString(s) Количество символов типа rune в строке s; это число может быть меньше, чем len(s), если строка s содержит не ASCII-символы
utf8.RuneLen(c) Число байтов, необходимых для кодирования символа c
utf8.RuneStart(x) true, если байт x может быть первым байтом символа
utf8.Valid(b) true, если байты в b представляют допустимые символы в кодировке UTF-8
utf8.ValidString(s) true, если байты в s представляют допустимые символы в кодировке UTF-8

    На следующем шаге рассмотрим функции пакета unicode.


Предыдущий шаг Содержание Следующий шаг