Man*_*gor 12 struct pointers go
Go Newbie问题:我正在尝试使用默认值初始化以下结构.我知道如果"Uri"是一个字符串而不是指向字符串的指针(*string),它会起作用.但我需要这个指针来比较结构的两个实例,如果没有设置Uri将是nil,例如当我从json文件解组内容时.但是,如何将这样的结构正确地初始化为"静态默认"?
type Config struct {
Uri *string
}
func init() {
var config = Config{ Uri: "my:default" }
}
Run Code Online (Sandbox Code Playgroud)
上面的代码失败了
cannot use "string" (type string) as type *string in field value
Run Code Online (Sandbox Code Playgroud)
Nad*_*adh 20
获取常量值的地址(指向)是不可能的,这就是初始化失败的原因.如果您定义一个变量并传递其地址,那么您的示例将起作用.
type Config struct {
Uri *string
}
func init() {
v := "my:default"
var config = Config{ Uri: &v }
}
Run Code Online (Sandbox Code Playgroud)