Go中导入前的下划线符号是什么意思?
你好!我开始学习Go,遇到了一个我不理解的构造。在别人的代码中,我看到了这样的导入:
```go
import (
"fmt"
_ "image/png"
"os"
)
```
让我困惑的是`"image/png"`字符串前的下划线(`_`)。我知道在Go中,未使用的导入会导致编译错误,但这里显然有别的含义。
我尝试删除这个导入,代码就无法工作了——程序无法解码PNG图像。而且我没有直接调用`image/png`包中的任何函数。这是如何工作的?如果我们没有显式使用包中的函数,为什么需要这样的导入?
在文档中我找到了关于`init()`函数的提及,但没有完全理解它是如何关联的。请解释一下导入前的下划线是做什么用的,以及在什么情况下它可能有用。是否有任何陷阱或最佳实践?
谢谢!
<<>>
什么是导入中的“空标识符”?
下划线符号(