import ステートメントのアンダースコア: 副作用の調査
プログラミングでは、import ステートメントの前にあるアンダースコアは特定の目的を果たします。 go-sqlite3 の次のコード スニペットを考えてみましょう:
import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" "log" "os" )
ここで、「github.com/mattn/go-sqlite3」のインポート ステートメントの前にあるアンダースコアにより、次のような疑問が生じます。それは何をするのか
意味と目的
import ステートメント内のアンダースコアは、関数や変数をインポートせずに、副作用のみを目的としてパッケージをインポートすることを示します。 Go 仕様によると:
To import a package solely for its side-effects (initialization), use the blank identifier as explicit package name: import _ "lib/math"
go-sqlite3 のコンテキスト内
go-sqlite3 の場合、アンダースコアインポートには特定のサイドがあります。効果。 sqlite3ドライバーをデータベースドライバーとして登録します。これは、パッケージの初期化中に実行されるパッケージの init() 関数内で行われます。
sql.Register("sqlite3", &SQLiteDriver{})
ドライバーを登録すると、標準ライブラリの SQL インターフェイスで sqlite3 を使用できるようになります。
db, err := sql.Open("sqlite3", "./foo.db")
以上がGo import ステートメントのアンダースコアは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。