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

Функция utf8.RuneStart

Функция utf8.RuneStart проверяет, является ли переданный байт началом корректного UTF-8 символа (руны). Она принимает один параметр - байт типа byte и возвращает true, если этот байт может быть началом руны. Функция полезна при проверке границ строк и валидации UTF-8 данных.

Синтаксис

utf8.RuneStart(b byte) bool

Пример

Давайте проверим, является ли байт началом UTF-8 символа для латинской буквы 'a' (ASCII символ, занимает 1 байт):

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

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

true

Пример

Теперь давайте проверим байт, который не является началом UTF-8 символа (например, продолжение многобайтового символа). Возьмем второй байт кириллической буквы 'я' в кодировке UTF-8:

package main import ( "fmt" "unicode/utf8" ) func main() { s := "я" b := s[1] // Второй байт символа 'я' res := utf8.RuneStart(b) fmt.Println(res) }

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

false

Пример

Давайте проверим байт, который является началом многобайтового UTF-8 символа. Возьмем первый байт кириллической буквы 'я':

package main import ( "fmt" "unicode/utf8" ) func main() { s := "я" b := s[0] // Первый байт символа 'я' res := utf8.RuneStart(b) fmt.Println(res) }

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

true

Пример

Важно отметить, что функция возвращает true для любого байта, который может быть началом руны, включая байты, не являющиеся корректными в UTF-8:

package main import ( "fmt" "unicode/utf8" ) func main() { // Байт 0xC0 - некорректный в UTF-8, но может быть началом b := byte(0xC0) res := utf8.RuneStart(b) fmt.Println(res) }

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

true

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

  • функцию utf8.ValidRune,
    которая проверяет, является ли руна корректной
  • функцию utf8.RuneCountInString,
    которая возвращает количество рун в строке
  • функцию utf8.DecodeRuneInString,
    которая декодирует первую руну из строки
  • функцию utf8.ValidString,
    которая проверяет, является ли строка корректной UTF-8
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить