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

type A = B и type A B

Вопрос

Чем type MyInt = int отличается от type MyInt int?

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

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

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

Коротко

Правильный ответ: Первое псевдоним того же int, второе новый тип с конвертацией. Псевдоним (=) это просто второе имя того же типа, значения взаимозаменяемы без конвертации, byte и rune устроены так же.

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

  1. Ничем, это две формы записи одного и того же объявления
  2. Первое новый тип с методами, второе псевдоним без конвертации
  3. Первое псевдоним того же int, второе новый тип с конвертациейправильный ответ
  4. Второе наследует все методы int и может их переопределить

Разбор

Псевдоним (=) это просто второе имя того же типа, значения взаимозаменяемы без конвертации, byte и rune устроены так же. Определение type MyInt int создаёт новый именованный тип: присвоить int в MyInt без MyInt(x) нельзя, зато можно добавить методы. Наследования в Go нет, и у встроенного int нет методов, которые можно было бы переопределить.

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

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

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