ホームページ > バックエンド開発 > Golang > 文字列ポインターを使用して構造体を初期化し、Nil 値を許可する方法

文字列ポインターを使用して構造体を初期化し、Nil 値を許可する方法

Barbara Streisand
リリース: 2024-11-14 17:17:02
オリジナル
541 人が閲覧しました

How to Initialize a Struct with a String Pointer and Allow for Nil Values?

構造体ポインターの初期化

文字列ポインターを使用した構造体の初期化は、特にデフォルト値を次のようにする必要がある場合に注意が必要です。 nil.

問題

初期化で定数文字列を使用して、文字列ポインターをデフォルト値として持つ構造体を初期化しようとすると、エラーが発生します:

cannot use "string" (type string) as type *string in field value
ログイン後にコピー

解決策

へnil の可能性がある文字列ポインターを使用して構造体を初期化する場合は、定数値ではなく変数のアドレスをポインターに割り当てる必要があります。動作する修正コードは次のとおりです。

type Config struct {
  Uri       *string
}

func init() {
  v := "my:default"
  var config = Config{ Uri: &v }
}
ログイン後にコピー

この場合、変数 v はデフォルトの文字列値を保持します。 & 演算子を使用してそのアドレスを取得し、それを Uri に割り当てることで、比較に使用でき、明示的に設定されていない場合は nil にすることができる文字列ポインターを作成しています。

以上が文字列ポインターを使用して構造体を初期化し、Nil 値を許可する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート