<分区>
我想为 Go 中的结构字段分配默认值。我不确定这是否可能,但是在创建/初始化结构的对象时,如果我没有为该字段分配任何值,我希望它从默认值分配。知道如何实现它吗?
type abc struct {
prop1 int
prop2 int // default value: 0
}
obj := abc{prop1: 5}
// here I want obj.prop2 to be 0
标签 go
<分区>
我想为 Go 中的结构字段分配默认值。我不确定这是否可能,但是在创建/初始化结构的对象时,如果我没有为该字段分配任何值,我希望它从默认值分配。知道如何实现它吗?
type abc struct {
prop1 int
prop2 int // default value: 0
}
obj := abc{prop1: 5}
// here I want obj.prop2 to be 0
最佳答案
这是不可能的。您能做的最好的事情就是使用构造函数方法:
type abc struct {
prop1 int
prop2 int // default value: 0
}
func New(prop1 int) abc {
return abc{
prop1: prop1,
prop2: someDefaultValue,
}
}
但还要注意,Go 中的所有值自动默认为它们的零值。 int
的零值已经是 0
。因此,如果您想要的默认值确实是 0
,那么您已经免费获得了它。如果你想要一个类型的一些默认值而不是零值,你只需要一个构造函数。
关于go - 为结构字段分配默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45710188/