Месяц к 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)
Ответы
Ответ 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)
Проверьте этот минимальный пример на игровой площадке.