Go Newbieの質問:次の構造体をデフォルト値で初期化しようとしています。 「Uri」がストリングであり、ストリング(* string)へのポインターではない場合に機能することを知っています。しかし、構造体の2つのインスタンスを比較するには、このポインターが必要です。 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 }
}