我有一个结构,我希望使用一些合理的默认值对其进行初始化。
通常,这里要做的是使用构造函数,但是由于go在传统意义上并不是真正的OOP,所以它们不是真正的对象,也没有构造函数。
我注意到了init方法,但这是在包级别。还有其他类似的东西可以在结构级别使用吗?
如果不是,那么Go中这种事情的公认最佳实践是什么?
实际上有两种公认的最佳实践:
func New() YourTyp
func NewYourType1() YourType1
记录是否可以使用您类型的零值(在这种情况下,必须使用以下New...功能之一来设置它。)(对于“传统主义者”哎呀:那些不阅读该文档的人将无法使用正确地输入您的类型,即使他无法创建处于未定义状态的对象也是如此。)
New...