Qia*_*hen 1 types go assertion
我有两个interface{}s a,b来自JSON解码和用户输入,让我们说:
var a interface{} = ...
var b interface{} = ...
Run Code Online (Sandbox Code Playgroud)
我知道他们是数字.它们可以是以下任何类型:
unit
unit8
uint16
uint32
uint64
int
int8
int16
int32
int64
float
float32
float64
Run Code Online (Sandbox Code Playgroud)
我写了一些测试代码如下.事实证明,当一个变量是int,它将失败并带有int64断言.
var a interface{} = 1
v, f := a.(int64)
fmt.Println(v, f) //0 false
v1, f1 := a.(int)
fmt.Println(v1, f1) //1 true
Run Code Online (Sandbox Code Playgroud)
所以现在我的问题如下:为了比较这两个数字,为了获得这两个interface{}变量的类型,我是否必须测试这些超过10种类型的所有排列?理想情况下,我只想将它们投射到int64或float64,但如果它们是int或者float,我将无法找到它们,直到用尽所有可能的类型.
| 归档时间: |
|
| 查看次数: |
3257 次 |
| 最近记录: |