在Go 中導入有副作用的套件
在檢查使用go-sqlite3 函式庫的程式碼時,可能會遇到以下內容的import語句:其前面有下劃線,類似於以下內容:
import ( "database/sql" "fmt" _ "github.com/mattn/go-sqlite3" "log" "os" )
下劃線的這種用法是 Go 中導入包的一種方法,只是為了解決它的副作用。如同Go 規格所述:
To import a package solely for its side-effects (initialization), use the blank identifier as explicit package name: import _ "lib/math"
範例:go-sqlite3 初始化
對於go-sqlite3,此下劃線導入用於註冊的目的透過init( ) 函數將sqlite3驅動程式作為資料庫驅動程序,而不需要從package:
sql.Register("sqlite3", &SQLiteDriver{})
註冊後,sqlite3 驅動程式可以與標準庫的 sql 介面一起使用,如下例所示:
db, err := sql.Open("sqlite3", "./foo.db")
以上是為什麼在 Go 中導入套件時使用下劃線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!