Go Newbie问题:我正在尝试使用默认值初始化以下结构。我知道,如果“ Uri”是字符串而不是指向字符串(* string)的指针,则可以使用。但是我需要这个指针来比较结构的两个实例,如果未设置Uri,则Uri将为nil,例如,当我从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 } }