Go の匿名構造体の宣言が「短い表記法」とみなされるのはなぜですか?

Patricia Arquette
リリース: 2024-10-28 09:29:29
オリジナル
647 人が閲覧しました

  Why are Anonymous Struct Declarations in Go Considered

匿名構造体宣言の違いを理解する

匿名構造体は、名前を割り当てずに構造体を定義する便利な方法です。これらは主に、特定の構造体の定義が重要ではない場合、または構造体がデータの保持と受け渡しのみを目的としている場合に使用されます。次のコード スニペットは、Go で匿名構造体を宣言する 2 つの方法を示しています。

<code class="go">var Foo = map[string]struct{}{
  "foo": struct{}{},
}</code>
ログイン後にコピー
<code class="go">var Foo = map[string]struct{}{
  "foo": {},
}</code>
ログイン後にコピー

最初の宣言では、明示的な型が struct{}{} として指定されています。 Gogland はこれを警告として正しく識別するため、この冗長な型宣言は不要です。 Go では、コンテキストから型が推測可能な場合、複合リテラルで型を省略できます。

2 番目の宣言では、型が省略され、{} という形式になります。これは、型を明示的に指定する必要がないため、「短い表記法」と呼ばれることもあります。複合リテラルがマップ内で使用される場合、キーと値の両方の型はマップ型自体から推測できます。

したがって、宣言 Foo = map[string]struct{}{"foo": {}} は最初のものと同等ですが、Go 言語で許可されている型の省略が行われています。この短い表記法は、匿名構造体の機能を変更しません。それは単なる構文上の違いです。

以上がGo の匿名構造体の宣言が「短い表記法」とみなされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!