为了账号安全,请及时绑定邮箱和手机立即绑定

将自定义类型类型转换为基本类型

将自定义类型类型转换为基本类型

Go
倚天杖 2021-10-11 18:47:57
如何将自定义类型转换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
提交
取消
意见反馈 帮助中心 APP下载
官方微信