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

Функция utf8.DecodeLastRuneInString

Функция utf8.DecodeLastRuneInString декодирует последний рун в строке, закодированной в UTF-8. Она возвращает два значения: сам декодированный рун и его размер в байтах. В первый параметр функция принимает строку, из которой нужно извлечь последний рун.

Если строка пустая, функция возвращает utf8.RuneError и размер 0. Если последний байт строки не является корректным началом UTF-8 последовательности, возвращается utf8.RuneError и размер 1.

Синтаксис

rune, size := utf8.DecodeLastRuneInString(str)

Пример

Давайте декодируем последний рун в строке "abcde":

package main import ( "fmt" "unicode/utf8" ) func main() { r, size := utf8.DecodeLastRuneInString("abcde") fmt.Printf("rune: %q, size: %d\n", r, size) }

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

"rune: 'e', size: 1"

Пример

Давайте декодируем последний рун в строке с Unicode символом "Hello, 世界":

package main import ( "fmt" "unicode/utf8" ) func main() { str := "Hello, 世界" r, size := utf8.DecodeLastRuneInString(str) fmt.Printf("rune: %q, size: %d\n", r, size) }

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

"rune: '界', size: 3"

Пример

Давайте проверим поведение функции на пустой строке:

package main import ( "fmt" "unicode/utf8" ) func main() { r, size := utf8.DecodeLastRuneInString("") fmt.Printf("rune: %q, size: %d\n", r, size) }

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

"rune: '�', size: 0"

Пример

Давайте сравним с функцией utf8.DecodeLastRune, которая работает со срезом байтов:

package main import ( "fmt" "unicode/utf8" ) func main() { str := "Привет" r1, size1 := utf8.DecodeLastRuneInString(str) bytes := []byte(str) r2, size2 := utf8.DecodeLastRune(bytes) fmt.Printf("From string: rune %q, size %d\n", r1, size1) fmt.Printf("From bytes: rune %q, size %d\n", r2, size2) }

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

"From string: rune 'т', size 2" "From bytes: rune 'т', size 2"

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

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