我经常遇到这样的情况,我期望一个int(任何类型的int/int8/16/32/64)并使用类型开关检查它
switch t := v.(type) {
case int, int8, int16, int32, int64:
// cast to int64
case uint, uint8, uint16, uint32, uint64:
// cast to uint64
}
现在我不能使用直接转换,因为t在这种情况下将是interface{}. case对于每种整数类型,我真的必须将其拆分为s 吗?
我知道我可以通过反射使用 来做到这一点reflect.ValueOf(v).Int(),但不应该有更好的(不那么冗长)的方式来做到这一点吗?
更新:
提出了一个问题,Rob 建议只reflect在这种情况下使用。
阿波罗的战车
神不在的星期二
相关分类