Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpAlAl 82 of 280 menu
◀ ▶

Второе имя типа в Go

Знак равенства в объявлении типа означает второе имя, а не новый тип. Слева пишут удобную метку, справа уже существующий тип, и компилятор считает оба имени одним и тем же типом для проверки присваивания.

Переменная с базовым типом и переменная со вторым именем меняются местами без преобразования, потому что знак равенства не отрезал новую разновидность. Метод объявляют только для своего типа без равенства: на UserID метод не запишут.

Объявим идентификатор пользователя как второе имя для целого и перекинем туда обычное число:

type UserID = int func main() { var id UserID = 42 n := 7 id = n fmt.Println(id) }

Дайте второе имя типу int с меткой OrderNum, присвойте 100, затем запишите в переменную обычное целое 5 и выведите результат.

Дан следующий код:

type UserID = int var id UserID id = 12

Скажите, нужно ли здесь явное преобразование типа.

Дан следующий код:

type UserID = int func (id UserID) Show() { fmt.Println(id) }

Скажите, соберется ли программа.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить