Go プログラミング言語の仕様では、「副作用 (初期化) のみを目的としてパッケージをインポートするには、明示的なパッケージ名として空の識別子を使用します。」と規定されています。
例えば:
import _ "foo/bar"
この構造の使用例を想像するのは困難です。`import` ステートメントの使用法インポート プログラムがそのパッケージのエクスポートされた関数を使用せずにデータベース ドライバーをロードできるユース ケースについて言及していますが、詳細は読者の想像力に委ねられています。
このユースケースを示す実際の例(コード スニペットと説明付き)はありますか?
ベストアンサー1
私は画像のサイズを変更するプログラムを書いていました。さまざまな形式の画像を認識できるようにしたかったのです。JPEG、PNG、画像そしてそれを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"