回答

收藏

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

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

我看到了这个例子sqlite3上GitHub:: ]" f$ d1 w, O' L/ e! W1 t
    import (       "database/sql"        "fmt"        _ "github.com/mattn/go-sqlite3"        "log"        "os")
    0 F9 [! K2 J* B" G6 h* l. d
而且似乎找不到 import 句子前面的下划线是什么意思?
, Q1 E8 q/ T6 w                                                                8 ~% \; {3 I/ N6 u. h+ Y
    解决方案:                                                                $ N, U% T( a2 Q) E9 N
                                                                简短回答:仅用于导入包的副作用。$ {& Q- V3 f6 k3 z
从Go 规范:
: N, j- }% w2 O2 o3 q1 a0 c2 R. M要仅为其副作用(初始化)导入包,请使用空白标识符作为显式包名称:
+ J. ]' _1 E& L; K导入_“lib/数学”
1 q! V, P1 Z5 ~4 m在 sqlite3 中在go-sqlite3的情况下,下划线导入用于sqlite3在init()将驱动程序注册为数据库驱动程序的副作用,而不导入任何其他函数:& c1 p/ K! C+ d$ e) G
    sql.Register("sqlite3",&SQLiteDriver{})
    : I5 P4 h" B0 K
这样注册,sqlite3 就可以sql与标准库的接口一起使用您的代码,如示例所示:; X0 a5 i; j! n6 X* c8 G
    db,err := sql.Open("sqlite3","./foo.db")
    9 _& r8 r" ?6 ]' V2 N6 U
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则