Выбор ответа Junior Типы и нулевые значения обновлено

string(65) в Go

Вопрос

Что выведет fmt.Println(string(rune(65))), и как правильно получить строку "65"?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: A; для "65" нужен strconv.Itoa(65). Преобразование целого в string интерпретирует число как код символа Unicode и даёт "A".

Варианты ответа

  1. A; для "65" нужен strconv.Itoa(65)правильный ответ
  2. 65; так и надо делать
  3. A; для "65" нужен string(int64(65))
  4. Ошибка компиляции; для "65" нужен fmt.Sprint(65)

Разбор

Преобразование целого в string интерпретирует число как код символа Unicode и даёт "A". Для десятичной записи нужен strconv.Itoa (или fmt.Sprint, но медленнее). string(int64(65)) всё равно даст "A". С rune код компилируется, а string(65) от целого go vet помечает как подозрительный.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме