回答

收藏

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

技术问答 技术问答 215 人阅读 | 0 人回复 | 2023-09-12

我看到了这个例子sqlite3上GitHub:
/ b! F/ L) l; Y! K# A
    import (       "database/sql"        "fmt"        _ "github.com/mattn/go-sqlite3"        "log"        "os")
    , Y" ~: Q1 a) ~
而且似乎找不到 import 句子前面的下划线是什么意思?/ L# W7 c, d2 j
                                                                ) d" q  _) z. H$ x& V
    解决方案:                                                               
* s- E4 c. O( a9 N' r6 C3 e                                                                简短回答:仅用于导入包的副作用。
" |# ~3 O0 R- D1 w从Go 规范:+ i' n$ @3 d- v, c; }3 M+ v
要仅为其副作用(初始化)导入包,请使用空白标识符作为显式包名称:5 X" @  u" E0 k2 k
导入_“lib/数学”# e5 B$ x/ C6 K5 i
在 sqlite3 中在go-sqlite3的情况下,下划线导入用于sqlite3在init()将驱动程序注册为数据库驱动程序的副作用,而不导入任何其他函数:
& f* k$ f- K- l, }* `/ ^
    sql.Register("sqlite3",&SQLiteDriver{})
    1 J3 z7 ]" X/ C9 `) X6 C
这样注册,sqlite3 就可以sql与标准库的接口一起使用您的代码,如示例所示:3 U* a6 m8 j/ d7 }
    db,err := sql.Open("sqlite3","./foo.db")6 C) v% v9 W2 a% I0 K
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则