Go 如何初始化结构字段
如何初始化golang类型中的任何字段?例如: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
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"}
}