我看到 this example from sqlite3 on GitHub :

import (
        "database/sql"
        "fmt"
        _ "github.com/mattn/go-sqlite3"
        "log"
        "os"
)

并且似乎无法找到 import 语句前面的下划线是什么意思。

最佳答案

简短的回答:
它仅用于导入包的副作用。
the Go Specification :

在 sqlite3 中
go-sqlite3 的情况下,下划线导入用于在 sqlite3 函数中将 init() 驱动程序注册为数据库驱动程序的副作用,而不导入任何其他函数:

sql.Register("sqlite3", &SQLiteDriver{})
一旦以这种方式注册,sqlite3 就可以在代码中与标准库的 sql 接口(interface)一起使用,如示例所示:
db, err := sql.Open("sqlite3", "./foo.db")

关于go - 导入语句前面的下划线是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21220077/

10-15 23:56