ホームページ >バックエンド開発 >Golang >Go 構造体で文字列ポインターを初期化するにはどうすればよいですか?

Go 構造体で文字列ポインターを初期化するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-19 10:40:03855ブラウズ

How to Initialize String Pointers in Go Structs?

構造体内の文字列ポインターの初期化

構造体内の文字列ポインターの初期化は、特にポインターを nil にする必要がある場合に困難になることがあります。設定を解除します。次のコード スニペットは、デフォルトの文字列ポインター値を使用して構造体を初期化する試みを示しています:

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 }
}

v は & 演算子を使用してアドレスを取得できる変数であるため、初期化は成功します。これにより、設定されていない場合は Uri フィールドを nil 値に、設定されている場合は特定の文字列値を指すことができます。

以上がGo 構造体で文字列ポインターを初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。