Go の変数宣言の謎の "_,"
Go では、次のような変数宣言によく遭遇します。
_, prs := m["example"]
この _, 構造体の目的は何ですか、また、なぜそれが _, 構造体の代わりに使用されるのですか?より直感的な prs := m["example"]?
空白の識別子: 戻り値の無視
_ は「空白の識別子」を表します。これにより、開発者は関数からの戻り値を破棄できます。この場合、m["example"] 式は、「example」キーの要素とキーが存在するかどうかを示すブール値の 2 つの値を含むタプルを返します。 _,, を使用すると、値ではなく、キーの存在のみが注目されます。
無効な宣言の防止
Go は変数宣言を厳密に強制します。値を指定せずに prs を宣言した場合、コンパイラはエラーを発生させます。代わりに、空白の識別子を使用して、戻り値は認識するが、それを使用するつもりはないことを Go に伝えます。
効率とコードの可読性
空白の使用識別子を使用すると、不要な変数の宣言が回避され、コードの効率が向上します。また、どの戻り値が無視されているかを明確にすることで、可読性も向上します。
一般的な使用例
カスタム命名規則
一部の開発者は、空白の識別子として使用される変数に「ok」や「err」などの名前を付ける規則を採用しています。これにより、可読性と一貫性がさらに向上します。
例
次のコード スニペットを考えてみましょう。
if _, err := os.Stat(path); os.IsNotExist(err) { fmt.Printf("%s does not exist\n", path) }
この例では、空白の識別子を使用します。ファイルの属性を気にせずに、指定されたパスにファイルが存在するかどうかをテストします。
以上がGo 変数宣言における空白の識別子「_」の目的は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。