> Что такое rune в Go (Go)
Уровень: junior · Роль: backend · Категория: Технические вопросы
Компании: Wildberries
Стек: Go
> Пример ответа
Rune в Go - это алиас для типа int32, который представляет собой кодовую точку Unicode (символ). В отличие от байта (byte), который хранит один ASCII-символ (8 бит), руна занимает 4 байта и может кодировать любой символ из таблицы Unicode, включая эмодзи, иероглифы и редкие символы.
На практике это важно при работе со строками, которые в Go являются неизменяемыми последовательностями байт в кодировке UTF-8. Один символ может занимать от 1 до 4 байт, поэтому итерация по строке как по байтам даст некорректные результаты для многобайтовых символов. Использование рун позволяет корректно обрабатывать каждый символ:
GOstr := "Привет, мир!"for _, r := range str {fmt.Printf("%c ", r) // Выведет каждый символ корректно}
Для преобразования строки в срез рун применяется []rune(str), что полезно для операций вроде реверса строки или подсчёта реального количества символов (длина в рунах - len([]rune(str))).
> Похожие задачи по backend
Что такое len и cap в слайсах Go и как они работают
Для чего нужны два экстра бита внутри бакета map Go и как они используются
Почему в Go нет гарантии порядка выполнения горутин
Почему вывод в цикле с горутинами в Go не гарантирован по порядку
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью