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

GO 中的结构枚举

GO 中的结构枚举

Go
holdtom 2023-05-15 09:46:57
我想在我的围棋程序中列举行星。每个行星都有一个通用名称(例如:“金星”)和以天文单位表示的与太阳的距离(例如:0.722)所以我写了这段代码:type planet struct {    commonName string    distanceFromTheSunInAU float64}const(    venus planet = planet{"Venus", 0.387}      // This is line 11    mercury planet = planet{"Mercury", 0.722}    earth planet = planet{"Eath", 1.0}    mars planet = planet{"Mars", 1.52}    ...)但是 Go 不允许我编译它,并给了我这个错误:# command-line-arguments./Planets.go:11: const initializer planet literal is not a constant./Planets.go:12: const initializer planet literal is not a constant./Planets.go:13: const initializer planet literal is not a constant./Planets.go:14: const initializer planet literal is not a constant你知道我该怎么做吗?谢谢
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

Go 不支持枚举。您应该将枚举字段定义为vars 或为确保不变性,可以使用返回常量结果的函数。

例如:


type myStruct { ID int }


func EnumValue1() myStruct { 

    return myStruct { 1 } 

}


func EnumValue2() myStruct { 

    return myStruct { 2 } 

}


查看完整回答
反对 回复 2023-05-15
  • 1 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信