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 サイトの他の関連記事を参照してください。