Функция utf8.DecodeRuneInString
Функция utf8.DecodeRuneInString декодирует первый рун
в строке UTF-8 и возвращает сам рун и количество байт,
которые он занимает. В первый параметр функция принимает
строку для декодирования. Если строка пустая или содержит
некорректную UTF-8 последовательность, функция возвращает
utf8.RuneError и размер 1 (для некорректных
последовательностей) или 0 (для пустой строки).
Синтаксис
r, size := utf8.DecodeRuneInString(str)
Пример
Давайте декодируем первый рун в строке "abcde":
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
str := "abcde"
r, size := utf8.DecodeRuneInString(str)
fmt.Printf("Рун: %c, Размер: %d\n", r, size)
}
Результат выполнения кода:
"Рун: a, Размер: 1"
Пример
Давайте декодируем первый рун в строке с кириллическими
символами "абвгд":
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
str := "абвгд"
r, size := utf8.DecodeRuneInString(str)
fmt.Printf("Рун: %c, Размер: %d\n", r, size)
}
Результат выполнения кода:
"Рун: а, Размер: 2"
Пример
Давайте проверим, как функция обрабатывает пустую строку:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
str := ""
r, size := utf8.DecodeRuneInString(str)
fmt.Printf("Рун: %d, Размер: %d\n", r, size)
}
Результат выполнения кода:
"Рун: 65533, Размер: 0"
Смотрите также
-
функцию
utf8.DecodeRune,
которая декодирует первый рун из слайса байт -
функцию
utf8.DecodeLastRuneInString,
которая декодирует последний рун в строке -
функцию
utf8.RuneCountInString,
которая возвращает количество рун в строке -
функцию
utf8.ValidString,
которая проверяет, является ли строка корректной UTF-8