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