Go编程语言规范规定:"要仅出于副作用(初始化)导入包,请使用空白标识符作为显式包名称."
例如:
import _ "foo/bar"
我很难想象这个构造的用例.Usage of the `import` statement的可接受答案提到了一个用例,在该用例中,可以加载数据库驱动程序,而不需要导入程序使用该软件包的任何导出函数,但是它省略了细节,让读者可以想象.
是否有真实的示例(带有代码片段和说明)来说明此用例?
Go编程语言规范规定:"要仅出于副作用(初始化)导入包,请使用空白标识符作为显式包名称."
例如:
import _ "foo/bar"
我很难想象这个构造的用例.Usage of the `import` statement的可接受答案提到了一个用例,在该用例中,可以加载数据库驱动程序,而不需要导入程序使用该软件包的任何导出函数,但是它省略了细节,让读者可以想象.
是否有真实的示例(带有代码片段和说明)来说明此用例?
我正在编写一个调整图像大小的程序.我希望它能够识别不同格式的图像,如JPEG,PNG,GIF,并将它们转换为JPEG.
因此,除了image
和image/jpeg
包之外,我还必须导入image/png
和image/gif
才能注册它们各自的解码器.
如果我没有导入这些,scaler only将能够读取JPEG张图像.
package main
import(
"image"
"image/jpeg" // I wanted to export the images as JPEG
_ "image/png"
_ "image/gif"
)
// ...
image
软件包中的相关文档:
解码任何特定的图像格式都需要事先注册解码器功能.注册通常是自动的,这是初始化该格式包的一个副作用,因此,要解码PNG图像,只需具备:
import _ "image/png"