我有两个interface{}sa和b来自 JSON 解码和用户输入,让我们说:var a interface{} = ...var b interface{} = ...我知道它们是数字。它们可以是以下任何类型:unitunit8uint16uint32uint64intint8int16int32int64floatfloat32float64我写了一些测试代码如下。事实证明,当一个变量是 时int,它会因int64断言而失败。var a interface{} = 1v, f := a.(int64)fmt.Println(v, f) //0 falsev1, f1 := a.(int)fmt.Println(v1, f1) //1 true所以现在我的问题是:为了比较这两个数字,我是否必须测试这10多个类型的所有排列才能获得这两个interface{}变量的类型?理想情况下,我只想将它们转换为int64or float64,但如果它们是int或float,则在用尽所有可能的类型之前我无法找到它们。
- 1 回答
- 0 关注
- 265 浏览
添加回答
举报
0/150
提交
取消