Go 如何初始化结构字段

Go 如何初始化结构字段,go,Go,如何初始化golang类型中的任何字段?例如: type MyType struct { Field string = "default" } 没有办法直接做到这一点。常见的模式是提供一个新的方法来初始化字段: func NewMyType() *MyType { myType := &MyType{} myType.Field = "default" return myType // If no special logic is need

如何初始化golang类型中的任何字段?例如:

type MyType struct {
    Field string = "default" 
} 

没有办法直接做到这一点。常见的模式是提供一个新的方法来初始化字段:

func NewMyType() *MyType {
    myType := &MyType{}
    myType.Field = "default"
    return myType

    // If no special logic is needed
    // return &myType{"default"}
}
或者,您可以返回非指针类型。最后,如果你能解决这个问题,你应该使结构的零值成为合理的默认值,这样就不需要特殊的构造函数。

你不能有这样的“默认”值,你可以创建一个默认的“构造函数”函数来返回默认值,或者简单地假设一个空/零值是“默认值”

同时,我强烈建议你通过考试

type MyType struct {
    Field string
} 

func New(fld string) *MyType {
    return &MyType{Field: fld}
}

func Default() *MyType {
    return &MyType{Field: "default"}
}