構造体内の文字列ポインターの初期化
構造体内の文字列ポインターの初期化は、特にポインターを 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 サイトの他の関連記事を参照してください。