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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-14 16:00:03989ブラウズ

How to Initialize a String Pointer in a Go Struct?

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

Go では、構造体に文字列を含む他の値へのポインターを含めることができます。構造体で文字列を直接初期化するのは簡単ですが、文字列ポインターの初期化には課題が生じる可能性があります。

問題

文字列ポインター (*string) を使用して構造体を初期化しようとする場合) デフォルト値として使用すると、エラーが発生します:

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 になる可能性がある 2 つの構造体インスタンスの比較が可能になります。

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

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