> Что такое rune в Go (Go)

Уровень: junior · Роль: backend · Категория: Технические вопросы

Компании: Wildberries

Стек: Go

> Пример ответа

Rune в Go - это алиас для типа int32, который представляет собой кодовую точку Unicode (символ). В отличие от байта (byte), который хранит один ASCII-символ (8 бит), руна занимает 4 байта и может кодировать любой символ из таблицы Unicode, включая эмодзи, иероглифы и редкие символы.

На практике это важно при работе со строками, которые в Go являются неизменяемыми последовательностями байт в кодировке UTF-8. Один символ может занимать от 1 до 4 байт, поэтому итерация по строке как по байтам даст некорректные результаты для многобайтовых символов. Использование рун позволяет корректно обрабатывать каждый символ:

GO
str := "Привет, мир!"
for _, r := range str {
fmt.Printf("%c ", r) // Выведет каждый символ корректно
}

Для преобразования строки в срез рун применяется []rune(str), что полезно для операций вроде реверса строки или подсчёта реального количества символов (длина в рунах - len([]rune(str))).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью