我想在我的圍棋程序中列舉行星。每個行星都有一個通用名稱(例如:“金星”)和以天文單位表示的與太陽的距離(例如: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條經(jīng)驗 獲得超6個贊
Go 不支持枚舉。您應(yīng)該將枚舉字段定義為vars 或為確保不變性,可以使用返回常量結(jié)果的函數(shù)。
例如:
type myStruct { ID int }
func EnumValue1() myStruct {
return myStruct { 1 }
}
func EnumValue2() myStruct {
return myStruct { 2 }
}
- 1 回答
- 0 關(guān)注
- 129 瀏覽
添加回答
舉報
0/150
提交
取消