Go の型推論が短い変数宣言の構造体フィールドで失敗するのはなぜですか?
構造体を使用した代入における Go の型推論の曖昧さ
次の Go コード スニペットを考えてみましょう。
i := 10 next := 11 prev, i := i, next
このスニペットでは、i の型は代入中に int として正常に推論されます。ただし、同様のスニペットに構造体フィールドが含まれる場合、以下に示すように型推論が失敗します。
type Foo struct { Bar int } f := Foo{10} next := 11 prev, f.Bar := f.Bar, next
後者のスニペットでは、f.Bar の型推論が失敗し、「non-name」というエラー メッセージが表示されます。 f.:= の左側のバー。
この動作を説明するには、Go の関連する問題を参照します。 tracker:
Github Issue 6842
Issue 6842 (「仕様: 短い宣言表記によるフィールドへの代入」) には、この動作が未解決の問題として文書化されています。この問題は、代入の構文のあいまいさに起因します。具体的には、コンパイラは、f.Bar が式 f.Bar, next 内の変数名であるかフィールド名であるかを判断できません。
問題レポートではオープンとしてマークされていますが、後のコメントでは、f.Bar が未解決であることが示唆されています。解決されているか、他の変更によって置き換えられている可能性があります。ただし、最新の公式発表では、これは既知の問題であるとのことです。
以上がGo の型推論が短い変数宣言の構造体フィールドで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?
