我有这个代码。我希望接口的类型断言为 int。但是,接口的类型改为 float64。谁能解释为什么会这样?以及规避它的最佳方法是什么。package mainimport ( "fmt" "encoding/json")type obj struct { X interface{}}func main() { var x int x = 5 o := &obj { X: x, } b, _ := json.Marshal(o) var newObj obj json.Unmarshal(b, &newObj) if _, ok := newObj.X.(int); ok { fmt.Println("X is an int") } else if _, ok := newObj.X.(float64); ok { fmt.Println("X is a float64") } else { fmt.Println("This does not make any sense") }}此代码打印“X 是 float64”。您可以在那里运行代码https://play.golang.org/p/9L9unW8l3n
- 1 回答
- 0 关注
- 205 浏览
添加回答
举报
0/150
提交
取消