为结构字段分配默认值[重复]

Posted

技术标签:

【中文标题】为结构字段分配默认值[重复]【英文标题】:Assign default value for struct field [duplicate] 【发布时间】:2018-01-24 09:32:47 【问题描述】:

我想为 Go 中的 struct 字段分配默认值。我不确定是否可能,但是在创建/初始化结构的对象时,如果我没有为该字段分配任何值,我希望它是从默认值分配的。知道如何实现吗?

type abc struct 
    prop1 int
    prop2 int  // default value: 0

obj := abcprop1: 5
// here I want obj.prop2 to be 0

【问题讨论】:

【参考方案1】:

这是不可能的。你能做的最好的就是使用构造方法:

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,那么您已经免费获得了它。如果您想要某个类型的零值以外的一些默认值,则只需要一个构造函数。

【讨论】:

以上是关于为结构字段分配默认值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Swift 中的选项 - 不为选项分配默认值 [重复]

mysql表字段默认值

MYSQL 不接受 NOW() 作为日期时间字段的默认值 [重复]

怎样设置mysql中的数据字段为默认值

Pybind11:如何为结构成员变量分配默认值?

保存下拉列表的选定值并在另一个下拉列表/重复下拉列表中默认分配它