Функция utf8.FullRune

Функция utf8.FullRune проверяет, содержит ли переданный слайс байт полную UTF-8 руну. Она возвращает true, если слайс начинается с полной кодовой последовательности руны, и false, если последовательность обрезана или слайс пустой. Первым параметром функция принимает слайс байт []byte, который нужно проверить на полноту руны.

Синтаксис

goutf8.FullRune(p []byte) bool

Пример

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

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  p := []byte("A")
  res := utf8.FullRune(p)
  fmt.Println(res)
}

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

gotrue

Пример

Давайте проверим, является ли слайс байт полной руной для символа "я" (двухбайтовая руна):

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  p := []byte("я")
  res := utf8.FullRune(p)
  fmt.Println(res)
}

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

gotrue

Пример

Давайте проверим, является ли слайс байт полной руной для обрезанного символа "я" (первый байт):

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  p := []byte("я")[:1]
  res := utf8.FullRune(p)
  fmt.Println(res)
}

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

gofalse

Пример

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

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  var p []byte
  res := utf8.FullRune(p)
  fmt.Println(res)
}

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

gofalse

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

  • функцию utf8.FullRuneInString,
    которая проверяет полноту руны в строке
  • функцию utf8.DecodeRune,
    которая декодирует руну из слайса байт
  • функцию utf8.DecodeRuneInString,
    которая декодирует руну из строки
  • функцию utf8.RuneCount,
    которая подсчитывает количество рун в слайсе байт