Месяц к int в Go - программирование
Подтвердить что ты не робот

Месяц к int в Go

Я новичок в языке GO, и теперь я столкнулся с небольшой проблемой. Когда я вызываю Time Second(), Year() и т.д., Они дали мне целое число, но когда я называю Month(), он дал мне переменную типа Month.

Из онлайн-документа я увидел

type Month int
...
func (m Month) String() string

но я не совсем понимаю. мой код имеет следующую ошибку, потому что m не является int. Как мне получить int из месяца?

Недействительная операция: m / time.Month(10) + offset (несоответствующие типы time.Month и int)

4b9b3361

Ответ 1

Учитывая:

var m time.Month

m Тип базового типа int, поэтому он может преобразован в int:

var i int = int(m) // normally written as 'i := int(m)'

На боковой ноте: на вопросе отображается деление 'm / time.Month(10)'. Это может быть ошибкой, если вы не хотите вычислять некоторое значение dekamonth; -)

Ответ 2

Вы должны явно преобразовать его в int:

var m Month = ...
var i int = int(m)

Проверьте этот минимальный пример на игровой площадке.