Преобразование в []rune

Преобразование строки в срез рун []rune позволяет работать с Unicode-символами как с отдельными элементами. В первый параметр мы передаем строку для преобразования, результатом является срез рун, где каждый элемент представляет собой Unicode-кодовую точку символа. Это преобразование особенно полезно при работе с многоязычными текстами.

Синтаксис

go[]rune(str)

Пример

Давайте преобразуем строку в срез рун и выведем каждый символ по отдельности:

gopackage main

import "fmt"

func main() {
  str := "abcde"
  runes := []rune(str)

  for i, r := range runes {
    fmt.Printf("Index: %d, Rune: %c\n", i, r)
  }
}

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

go"Index: 0, Rune: a"
"Index: 1, Rune: b"
"Index: 2, Rune: c"
"Index: 3, Rune: d"
"Index: 4, Rune: e"

Пример

Давайте преобразуем строку с Unicode-символами в срез рун и проверим количество символов:

gopackage main

import "fmt"

func main() {
  str := "Привет123"
  runes := []rune(str)

  fmt.Printf("String length: %d\n", len(str))
  fmt.Printf("Rune length: %d\n", len(runes))
}

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

go"String length: 12"
"Rune length: 8"

Пример

Давайте преобразуем срез рун обратно в строку:

gopackage main

import "fmt"

func main() {
  runes := []rune{'h', 'e', 'l', 'l', 'o'}
  str := string(runes)

  fmt.Println(str)
}

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

go"hello"

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

  • преобразование в строку to-string,
    которое преобразует различные типы данных в строку
  • преобразование в срез байт to-byte-slice,
    которое преобразует строку в срез байт
  • преобразование в руну to-rune,
    которое преобразует числовое значение в руну
  • работа со строками и рунами string-runes,
    которая рассматривает особенности работы строк и рун в Go