初始化结构中的字符串指针

问题描述:

Go新手问题:我正在尝试使用默认值初始化以下结构。我知道,如果“Uri”是一个字符串而不是指向字符串(*字符串)的指针,它就可以工作。但是我需要这个指针来比较结构的两个实例,如果没有设置,Uri将是零。当我从一个json文件中取消内容时。但是,我怎样才能正确地初始化这样一个结构作为“静态默认”?上述初始化结构中的字符串指针

type Config struct { 
    Uri  *string 
} 

func init() { 
    var config = Config{ Uri: "my:default" } 
} 

代码失败,

cannot use "string" (type string) as type *string in field value 

这是不可能得到一个恒定值,这就是为什么你的初始化失败的地址(以点)。如果你定义一个变量并传递它的地址,你的例子就可以工作。

type Config struct { 
    Uri  *string 
} 

func init() { 
    v := "my:default" 
    var config = Config{ Uri: &v } 
}