有如下的Java代码
class Vec
{
public final double x, y, z; // position, also color (r,g,b)
public static final Vec Zero = new Vec(0, 0, 0);
}
我使用GO的struct模拟上面的代码
type Vec struct {
x, y, z float64
Zero Vec = &Vec{0, 0, 0} //这样的实现不支持,该如何实现
}
但GO好像不支持在struct中编写这样的语句 Zero Vec = &Vec{0, 0, 0}, 请问该如何实现?
有疑问加站长微信联系(非本文作者)

类似这样子实现,看能不能满足你要求:
go不支持struct对象作为常量。 所以只能定义为变量:
或者通过一个包装函数获取:
谢谢,我试下
谢谢,我试下
楼主的问题,重点在于java的static。尽管该变量是定义在Vect,但实际上是全局唯一副本。因此,从应用上,需要判定是用于判定zero相等,还是为了定义这么个全局副本。所以有两种方式:
已经采用了第一种方法,谢谢你的帮助