ホームページ > バックエンド開発 > Golang > Go import ステートメントのアンダースコアは何を意味しますか?

Go import ステートメントのアンダースコアは何を意味しますか?

Patricia Arquette
リリース: 2024-12-28 02:41:09
オリジナル
279 人が閲覧しました

What Does an Underscore in a Go Import Statement Mean?

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 サイトの他の関連記事を参照してください。

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