【发布时间】:2018-04-24 18:15:53
【问题描述】:
我使用的库只接受float64 作为函数参数,但我的代码可以在interface{} 中发布任何类型的数字,即int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64。
如何编写一个优雅的函数来断言所有这些类型?
我在想这样的事情:
if i, ok := event.Value.(int); ok {
value = float64(i)
} else if f, ok := event.Value.(float64); ok {
value = f
} else {
... error and return
}
每种类型有一个else if。
我确信在某个地方有更高效/更优雅的东西!
谢谢
【问题讨论】:
标签: go