Я использую gorm, и он допускает много типов данных, таких как int, uint, int8, uint8 ....
Тогда у меня есть плагин в шаблоне, как это:
f["UNIX2STR"] = func(t interface{}, f string) string {
switch t.(type) {
case int:
return time.Unix(int64(t.(int)), 0).Format(f)
case uint:
return time.Unix(int64(t.(uint)), 0).Format(f)
case uint8:
return time.Unix(int64(t.(uint8)), 0).Format(f)
case *int:
return time.Unix(int64(*t.(*int)), 0).Format(f)
case *uint:
return time.Unix(int64(*t.(*uint)), 0).Format(f)
case *uint8:
return time.Unix(int64(*t.(*uint8)), 0).Format(f)
.....
default:
return ""
}
// return time.Unix(int64(t), 0).Format(f)
}
Преобразует все целочисленные типы в форматированную строку.
Так что мне делать? Вывести список всех поддерживаемых gorm типов int и привести его к int64
?
Я много дней искал решение, преобразующее interface{}
в его истинный тип без использования утверждения типа, но не сработало.