如何将自定义类型转换interface{}为基本类型(例如uint8)?我不能使用直接转换,uint16(val.(Year))因为我可能不知道所有自定义类型,但我可以在运行时确定基本类型 ( uint8, uint32,...)有许多基于数字的自定义类型(通常用作枚举):前任:type Year uint16type Day uint8type Month uint8等等...问题是关于从类型转换interface{}到基本类型的类型转换:package mainimport "fmt"type Year uint16// ....//Many others custom types based on uint8func AsUint16(val interface{}) uint16 { return val.(uint16) //FAIL: cannot convert val (type interface {}) to type uint16: need type assertion}func AsUint16_2(val interface{}) uint16 { return uint16(val) //FAIL: cannot convert val (type interface {}) to type uint16: need type assertion}func main() { fmt.Println(AsUint16_2(Year(2015)))}http://play.golang.org/p/cyAnzQ90At
2 回答
- 2 回答
- 0 关注
- 176 浏览
添加回答
举报
0/150
提交
取消