一尘不染

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

go

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

阅读 233

收藏
2020-07-02

共1个答案

一尘不染

无法获得(指向)常数值的地址,这就是初始化失败的原因。如果定义变量并传递其地址,则您的示例将起作用。

type Config struct {
  Uri       *string
}

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