我有兩個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 關注
- 300 瀏覽
添加回答
舉報
0/150
提交
取消