Go プログラミングの領域では、独特の構文が出現しました。構造体内の「-プレフィックス付きフィールド」。この不可解な表記法により、多くの人がその目的について困惑しています。この構造体の背後にある謎を解き明かしてみましょう。
「_」で始まるフィールドは空の構造体であり、事実上、構造体の宣言方法に影響を与えるプレースホルダーです。次のコード スニペットを考えてみましょう:
type SomeType struct { Field1 string Field2 bool _ struct{} }
このコードでは、「Field1」、「Field2」、および「_」の 3 つのフィールドを持つ「SomeType」という名前の構造体が導入されています。 「_」で示される空の構造体は、特定の機能を果たします。
「SomeType」構造体の変数を構築するときは、フィールドにキーを明示的に割り当てる必要があります。例:
// ALLOWED: bar := SomeType{Field1: "hello", Field2: true} // COMPILE ERROR: foo := SomeType{"hello", true}
「_」で始まるフィールドがなければ、「foo」に見られるように構造体のデフォルトの初期化が可能ですが、この場合、コンパイラはエラーを表示します。
このメカニズムにより、キーを使用してすべてのフィールドにアクセスできるようになり、キーベースのフィールドに依存する既存のコードを損なうことなく、将来のフィールドの変更や追加が可能になります。 アクセス。したがって、「_」プレフィックスが付いた空の構造体は、将来の拡張性と相互運用性のための構文上の保護手段となります。
以上がGo 構造体の「_」プレフィックス付きフィールドでキー付き初期化が強制されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。