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

在 go 中将枚举类型转换为 *枚举类型

在 go 中将枚举类型转换为 *枚举类型

Go
喵喵时光机 2022-10-04 20:01:52
在这里,我想将枚举从类型转换为类型,因为它们是字符串,因此我无法直接将指针值分配给枚举。我试图将值分配给临时变量Day*Mappingsvar id = MON *r = id但这不起作用,我希望将其分配给指针,以便我可以为该类型提供nil值。我无法更改结构或结构类型。如何将值分配给接收器而不遇到指针问题?游乐场链接: https://play.golang.org/p/5SNx0I-Prc2DayMappings*rpackage maintype Day stringconst (    SUNDAY  Day = ""    MONDAY  Day = "MONDAY"    TUESDAY Day = "TUESDAY")type Mappings stringconst (    SUN Mappings = ""    MON Mappings = "MON"    TUE Mappings = "TUE")func main() {    type A struct {        day Day    }    type B struct {        day *Mappings    }    sourceObj := A{day: MONDAY}    destObj := B{}    destObj.day.To(sourceObj.day)}func (r *Mappings) To(m Day) {    switch m {    case MONDAY:        *r = MON    case TUESDAY:        *r = TUE    }}
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

destObj.day将是 .因此,并且将成为运行时异常。通过使用关键字为 分配空间。例:nil*r*destObj.daydestObj.daynew

destObj := B{new(Mappings)}


查看完整回答
反对 回复 2022-10-04
  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号