Golangで空の識別子を使用してインポートするユースケース 質問する

Golangで空の識別子を使用してインポートするユースケース 質問する

Go プログラミング言語の仕様では、「副作用 (初期化) のみを目的としてパッケージをインポートするには、明示的なパッケージ名として空の識別子を使用します。」と規定されています。

例えば:

import _ "foo/bar"

この構造の使用例を想像するのは困難です。`import` ステートメントの使用法インポート プログラムがそのパッケージのエクスポートされた関数を使用せずにデータベース ドライバーをロードできるユース ケースについて言及していますが、詳細は読者の想像力に委ねられています。

このユースケースを示す実際の例(コード スニペットと説明付き)はありますか?

ベストアンサー1

私は画像のサイズを変更するプログラムを書いていました。さまざまな形式の画像を認識できるようにしたかったのです。JPEGPNG画像そしてそれをJPEG

そのため、imageそしてimage/jpegパッケージをインポートする必要もありましたimage/pngそしてimage/gifそれぞれのデコーダーを登録するだけです。

これらをインポートしていなかったら、スケーラーはのみ読むことができるJPEG画像。

package main

import(
  "image"
  "image/jpeg" // I wanted to export the images as JPEG
  _ "image/png"
  _ "image/gif"
)

// ...

関連文書はimageパッケージ:

特定の画像形式をデコードするには、デコーダー関数を事前に登録する必要があります。登録は通常、その形式のパッケージを初期化する副作用として自動的に行われるため、PNG 画像をデコードするには、次のものがあれば十分です。

import _ "image/png"

おすすめ記事