ホームページ > バックエンド開発 > Golang > Go言語の空白識別子とは何ですか?

Go言語の空白識別子とは何ですか?

青灯夜游
リリース: 2023-01-31 17:15:55
オリジナル
3578 人が閲覧しました

Go 言語では、空白識別子は未使用の値のプレースホルダーであり、アンダースコア「_」で表されます。空の識別子は、他の識別子と同様に変数の宣言または割り当てで使用できます (任意の型を割り当てることができます)。ただし、この識別子に割り当てられた値は破棄されるため、これらの値は後続のコードで使用できません。また、「_」を変数として使用して、値を割り当てたり、他の変数に対して演算を実行したりすることもできません。

Go言語の空白識別子とは何ですか?

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

Python と同様、Go 言語にも空白識別子があります。

空白識別子とは

空白識別子は、未使用の値のプレースホルダーです。アンダースコア (_) で表されます。空白識別子には名前がないため、匿名プレースホルダーとも呼ばれます。

空白識別子は、他の識別子と同様に変数の宣言または割り当てに使用できます (任意の型を割り当てることができます)。ただし、この識別子に割り当てられた値は破棄されるため、これらの値は使用できません。後続のコードで使用される場合、_ を変数として使用して値を割り当てたり、他の変数に対して演算を実行したりすることはできません。

Go 言語では、未使用の変数や import ステートメントを宣言することはできません。つまり、変数を宣言して未使用のままにすることはできません。同様に、パッケージをインポートする場合も、それを使用する必要があります。

現時点では空の識別子が必要です。

未使用の代入変数

Go の関数が複数の値を返す場合、これらの値を保持するために同じ数の変数を定義する必要があります。ただし、一部の値のみが必要で、他の値は必要ない場合、および代入が複数の左辺値と一致する必要があるが、変数の 1 つがプログラムで使用されない場合は、代わりに空の識別子を使用します。この変数は、無駄な変数の作成を回避し、値が破棄されることを明確に示します。以下に示すように:

result, error = Dosomething()
if error {
   // handle error
}
ログイン後にコピー

上記のコードでは、result はプログラムとは関係がなく、後続のコードでは使用されません。コンパイルすると、Go コンパイラーはエラーを報告します。

result declared but not used
ログイン後にコピー

この場合、次のように結果をアンダースコアまたは空白の識別子に置き換えることができます:

_, error = Dosomething()
if error {
   // handle error
}
ログイン後にコピー

変数を宣言した場合でも、次のように空白の後の識別子を使用してそれを無視できます。次のコードに示されています:

product, error = Dosomething()
if error {
   // handle error
}
// ignore unused variable
_ = product
ログイン後にコピー

空白識別子を使用します <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false">func Sum(numbers []int) int { sum := 0 for _, number := range numbers { sum += number } return sum }</pre><div class="contentsignin">ログイン後にコピー</div></div>

in for...range 不明な構造

# を使用して何かを割り当てることができます:

var _ I = T{}
ログイン後にコピー

この変数は、生成されたプログラムから最適化されるようにアクセスできません。ただし、インターフェイス I に T 型が割り当てられていない場合、コンパイル エラーが発生する可能性があります。したがって、この場合は、型に関する静的なアサーションとして使用されます。

未使用のパッケージ

Go では、パッケージをインポートする場合は、それを使用する必要があります。そうしないと、コンパイラ エラーが発生します。

imported and not used “<package name>”
ログイン後にコピー

空白識別子を使用して、このコンパイラ エラーを解決できます。

空の識別子を使用して未使用パッケージのエラーを解決するには、次の 2 つの方法があります。

最初: グローバルな空の識別子を宣言します ( main() 関数の前)。この識別子は、次のシンボルにアクセスします。未使用のパッケージ (Open など) を次のコードで記述します:

import "os"
var _ = os.Open
func main() {
}
ログイン後にコピー

Second: 次のように、未使用のパッケージの前に空の識別子を追加します:

import _ "os"

func main(){
}
ログイン後にコピー

空白の識別子を使用すると、未使用の変数を避けることでコードが読みやすくなります。コード全体の宣言。

概要

宣言されていても Golang で使用されていないパッケージや変数は、エラーをスローします。このルールにより、コードがクリーンかつ軽量に保たれます。

• 将来の使用のために事前にいくつかのパッケージをインポートする必要がある場合は、空の識別子を使用できることがあります。

• 関数が複数のパラメーターを返す場合がありますが、変数の 1 つだけを使用する必要がある場合は、空の識別子を通じてそれを受け取ることができます。

【関連する推奨事項: Go ビデオ チュートリアル プログラミング教育

以上がGo言語の空白識別子とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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