Какая ошибка будет при попытке изменить символ строки — паника, обрабатываемая ошибка или что-то другое?

В Go символ (rune) — это тип данных, представляющий Unicode-кодовую точку (int32). Если попытаться присвоить символ строке напрямую, например:

Короткий ответ

Что ответить на собеседовании

В Go символ (rune) — это тип данных, представляющий Unicode-кодовую точку (int32). Если попытаться присвоить символ строке напрямую, например:

Подробный разбор

Ответ с пояснениями

В Go символ (rune) — это тип данных, представляющий Unicode-кодовую точку (int32). Если попытаться присвоить символ строке напрямую, например:

var s string
s = 'a' // ошибка компиляции

то возникнет ошибка, так как одинарные кавычки обозначают rune, а двойные — строку.

Если же сделать преобразование:

s = string('a')

то символ будет преобразован в строку длиной 1.

Последствия:

  • Неправильное присвоение символа строке вызовет ошибку компиляции.
  • Правильное преобразование создаст строку из одного символа.

Важно понимать, что rune — это числовой тип, а string — последовательность байт. Преобразование rune в string создаёт строку с UTF-8 кодировкой этого символа.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее