我想知道我是否可以实现这个函数的不那么冗长的版本。如果它有更好的性能,那就太好了。
func AnyIntToInt(x interface{}) (int, error) {
switch val := x.(type) {
case int8:
return int(val), nil
case int16:
return int(val), nil
case int32:
return int(val), nil
case int64:
return int(val), nil
case uint8:
return int(val), nil
case uint16:
return int(val), nil
case uint32:
return int(val), nil
case uint64:
return int(val), nil
}
return 0, ErrNotInteger
}
我一直在尝试这个,但是它产生了意想不到的结果。
func AnyIntToInt(x interface{}) (int, error) {
return *(*int)(unsafe.Pointer(&x))
}
汪汪一只猫
相关分类