Функция bytes.Runes
Функция bytes.Runes преобразует строку в слайс рун ([]rune).
Это позволяет работать с каждым Unicode-символом как с отдельным элементом.
В качестве единственного параметра функция принимает строку ([]byte)
и возвращает слайс рун, где каждый элемент соответствует одному
Unicode-кодовому пункту исходной строки. Это особенно полезно
при работе с многобайтовыми символами, например, с эмодзи или
символами кириллицы.
Синтаксис
bytes.Runes(s)
Пример
Давайте преобразуем строку "abcde" в слайс рун:
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("abcde")
res := bytes.Runes(s)
fmt.Println(res)
}
Результат выполнения кода:
[97 98 99 100 101]
Как видно из примера, каждый символ преобразуется в соответствующее числовое значение руны.
Пример
Давайте преобразуем строку с русскими символами "привет"
в слайс рун:
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("привет")
res := bytes.Runes(s)
fmt.Println(res)
}
Результат выполнения кода:
[1087 1088 1080 1074 1077 1090]
Пример
Давайте проверим, как функция обрабатывает строку с эмодзи
"😀😁😂":
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("😀😁😂")
res := bytes.Runes(s)
fmt.Println(res)
}
Результат выполнения кода:
[128512 128513 128514]
Смотрите также
-
функцию
strings.IndexRune,
которая ищет позицию первого вхождения руны -
функцию
utf8.RuneCount,
которая подсчитывает количество рун в байтовом слайсе -
функцию
utf8.DecodeRune,
которая декодирует первую руну из байтового слайса -
функцию
bytes.Runes,
которая преобразует байтовый слайс в слайс рун