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

Псевдоним и свой тип в Go

Свой тип без знака равенства не смешивается с исходным без преобразования, а псевдоним смешивается. Одна и та же основа вроде float64 может дать либо новую разновидность для методов, либо лишь другое написание того же типа.

Попробуем положить дробное число в переменную своего типа температуры без приведения:

type Celsius float64 func main() { x := 21.5 var t Celsius = x }

Такой код не собирается: x это float64, а t ждет Celsius. Нужно явное преобразование или литерал с приведением, как вы уже делали с методами на Celsius.

Сравним с вторым именем для той же основы, где присваивание проходит без преобразования:

type Reading = float64 func main() { x := 21.5 var r Reading = x }

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

type Celsius float64 a := 36.6 var t Celsius = a

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

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

type Score = int points := 10 var s Score = points

Скажите, нужно ли преобразование типа между points и s.

Объявите свой тип Percent поверх int, присвойте значение через Percent(50) и выведите его. Затем скажите, можно ли присвоить туда переменную int без преобразования.

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