空の識別子を使用したインポート: 実用的な使用例
Go プログラミング言語では、初期化の副作用のみを目的としてパッケージをインポートできます。これは、次の例に示すように、明示的なパッケージ名として空の識別子を使用することで実現できます。
import _ "foo/bar"
この import ステートメントは、パッケージ foo/bar がその初期化関数のためにインポートされることを示唆していますが、そのエクスポートされた関数は、インポートするプログラムでは使用されません。
実際の例: データベース ドライバー登録
この構造の実際的な使用例の 1 つは、データベース ドライバーの登録です。データベース ドライバー パッケージには、ドライバーをデータベース ライブラリに登録する初期化関数が含まれることがよくあります。
たとえば、go-sqlite3 パッケージでは、次の init 関数が SQLite3 ドライバーを登録します。
func init() { sql.Register("sqlite3", &SQLiteDriver{}) }
空の識別子を使用して go-sqlite3 をインポートすると、インポートするプログラムは、エクスポートされたドライバーを直接使用せずに SQLite3 ドライバーを登録できます。関数:
import _ "github.com/mattn/go-sqlite3" func main() { // Connect to a SQLite3 database using the registered driver. }
初期化の副作用のその他の例
初期化関数は次の目的にも使用できます。
以上がGo の空の識別子のインポートを使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。