小编典典

导入语句前面的下划线是什么意思?

all

我从上看到了这个例子sqlite3``GitHub

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

并且似乎无法找到导入语句前面的下划线的含义。


阅读 84

收藏
2022-05-18

共1个答案

小编典典

简短的回答:

它仅用于导入包的副作用。

来自Go 规范

要仅为其副作用(初始化)导入包,请使用空白标识符作为显式包名称:

导入_“库/数学”

在 sqlite3 中

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

sql.Register("sqlite3", &SQLiteDriver{})

一旦以这种方式注册,sqlite3 就可以sql在您的代码中与标准库的接口一起使用,如示例中所示:

db, err := sql.Open("sqlite3", "./foo.db")
2022-05-18