go语言中结构体struct初始化

23 阅读1分钟

例如结构体为:

type system struct {
    Mode          string `validate:"eq=master|eq=slave"`
    Listen        string `validate:"required"`
    Debug         bool
    SessionSecret string
    HashIDSalt    string
    GracePeriod   int    `validate:"gte=0"`
    ProxyHeader   string `validate:"required_with=Listen"`
}

初始化结构体struct的方式有以下几种

返回变量指针

var SystemConfig = &system{ 
    Debug: false, 
    Mode: "master", 
    Listen: ":5212", 
    ProxyHeader: "X-Forwarded-For", 
}

或者 var SystemConfig = &system{}

返回变量指针

SystemConfig := new(system)
SystemConfig.Mode = "master"
SystemConfig.Listen = ":5212"
// ...
}

字面量初始化

# 创建一个结构体实例并初始化字段,但不返回指针
config := system{Mode: "master", Listen: ":5212"}