Функция utf8.ValidRune

Функция utf8.ValidRune проверяет, является ли переданная руна допустимой в кодировке UTF-8. Она возвращает true, если руна допустима, и false в противном случае. В единственный параметр функция принимает значение типа rune, которое нужно проверить на валидность. Функция считает недопустимыми руны, которые не являются корректными кодовыми точками Unicode, в частности, руну utf8.RuneError (которая равна 0xFFFD), а также значения, выходящие за пределы допустимого диапазона.

Синтаксис

goutf8.ValidRune(r)

Пример

Давайте проверим, является ли допустимой руна 'A':

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  res := utf8.ValidRune('A')
  fmt.Println(res)
}

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

gotrue

Пример

Давайте проверим, является ли допустимой руна '世' (китайский иероглиф):

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  res := utf8.ValidRune('世')
  fmt.Println(res)
}

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

gotrue

Пример

Теперь проверим недопустимую руну utf8.RuneError:

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  res := utf8.ValidRune(utf8.RuneError)
  fmt.Println(res)
}

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

gofalse

Пример

Проверим руну с недопустимым значением -1:

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  res := utf8.ValidRune(-1)
  fmt.Println(res)
}

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

gofalse

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

  • функцию utf8.ValidString,
    которая проверяет валидность всей строки в UTF-8
  • функцию utf8.Valid,
    которая проверяет валидность среза байтов
  • функцию utf8.RuneCountInString,
    которая подсчитывает количество рун в строке
  • функцию unicode.IsLetter,
    которая проверяет, является ли руна буквой