如何在Struct中定义常量

cstyle · · 6405 次点击
polaris
社区,需要你我一同完善!
类似这样子实现,看能不能满足你要求: ```go package main import "fmt" type Vec struct { x, y, z float64 Zero *Vec } func NewVec(x, y, z float64) *Vec { return &Vec{ x: x, y: y, z: z, Zero: &Vec{x: 0, y: 0, z: 0}, } } func main() { v := NewVec(10, 2, 30) fmt.Println(v) } ```
#1
更多评论
stevewang
耶和华是我的牧者,我必不至缺乏。
go不支持struct对象作为常量。 所以只能定义为变量: ``` var ( Zero = Vec{0, 0, 0} ) ``` 或者通过一个包装函数获取: ``` func ZeroVec() Vec { return Vec{0, 0, 0} } ```
#2
谢谢,我试下
#3