Go 言語のアンダースコア

1. 下線を引く

「_」は結果を無視するために使用される特別な識別子です。

1.1.1. インポート時のアンダースコア

Golang では、インポートの機能は他のパッケージをインポートすることです。

import アンダースコアの役割: パッケージをインポートすると、そのパッケージの下にあるファイル内のすべての init() 関数が実行されますが、パッケージ全体をインポートする必要がなく、init() 関数のみを実行したい場合もあります。 。このとき、import を使用してパッケージを参照できます。[import _ package path] がパッケージを参照するためだけに使用されている場合でも、それは init() 関数を呼び出すためだけであるため、パッケージ名を介してパッケージ内の他の関数を呼び出すことはできません。例:

import "database/sql"
import _ "github.com/go-sql-driver/mysql"

2 番目のインポートでは、mysql パッケージを直接使用せず、このパッケージの init 関数を実行し、mysql ドライバーを sql パッケージに登録し、その後、sql パッケージを使用してプログラム内の mysql データベースにアクセスします。

1.1.2. コード内のアンダースコア

たとえば、os.Open の場合、戻り値は *os.File で、通常のエラーの書き方
は f, err := os.Open("/text.txt") です。
返された値を知る必要がない場合は、このときのエラー値は、
f , _ := os.Open("/text.txt")のように記述できます。

この場合、エラー変数は無視されます。

説明:

プレースホルダー。これは、位置に特定の値が割り当てられるべきであるが、この値は必要ないことを意味します。
したがって、この値をアンダースコアに代入するだけです。つまり、値を捨てないでください。
こうすることで、コンパイラーはより適切に最適化でき、任意の型の単一値をアンダースコアにドロップできます。
これはプレースホルダーであり、メソッドは 2 つの結果を返しますが、必要なのは 1 つだけです。
もう 1 つは、「_」を使用してその位置を占めており、変数を使用する場合、使用しない場合、コンパイラはエラーを報告します。

おすすめ

転載: blog.csdn.net/chenxuezhong0413/article/details/115338917