Выбор ответа Middle Типы и нулевые значения обновлено
type A = B и type A B
Вопрос
Чем type MyInt = int отличается от type MyInt int?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Первое псевдоним того же int, второе новый тип с конвертацией. Псевдоним (=) это просто второе имя того же типа, значения взаимозаменяемы без конвертации, byte и rune устроены так же.
Варианты ответа
- Ничем, это две формы записи одного и того же объявления
- Первое новый тип с методами, второе псевдоним без конвертации
- Первое псевдоним того же int, второе новый тип с конвертациейправильный ответ
- Второе наследует все методы int и может их переопределить
Разбор
Псевдоним (=) это просто второе имя того же типа, значения взаимозаменяемы без конвертации, byte и rune устроены так же. Определение type MyInt int создаёт новый именованный тип: присвоить int в MyInt без MyInt(x) нельзя, зато можно добавить методы. Наследования в Go нет, и у встроенного int нет методов, которые можно было бы переопределить.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Типы и нулевые значения»
- Перевод числа между системами счисления на Go
- Права доступа битовой маской на Go
- Наименьший целый тип для суммы на Go
- Что выведет Go: преобразования чисел
- Что выведет Go: iota с выражением
- Какой тип не может быть ключом мапы
- Преобразования типов в Go
- Размеры KB и MB через iota