在Go 中使用空白標識符進行包初始化
Go 程式語言允許僅透過使用空白來導入包,因為它們的副作用標識符。當呼叫套件的 init 函數而不使用其匯出函數時,此技術特別有用。
此構造的一個實際應用是在資料庫驅動程式中。考慮 go-sqlite3 包,它提供了 SQLite 資料庫的驅動程式。為了初始化驅動程序,該套件定義了一個init 函數:
func init() { sql.Register("sqlite3", &SQLiteDriver{}) }
透過使用空白標識符導入go-sqlite3 包,應用程式可以使用資料庫驅動程序,而無需明確調用其任何方法:
import _ "github.com/mattn/go-sqlite3"
文章「了解Golang 套件」中說明了另一個範例。這裡,init 方法用於註冊新的檔案系統類型:
import _ "mypkg/fs" package main func init() { fsys := &FileSystem{} // Register the file system type. }
空白標識符允許應用程式呼叫init 函數而不暴露fs 套件的函數:
import _ "mypkg/fs" package main // Use the file system type, registered in the init function.
總而言之,在Go 中使用空白標識符導入包提供了一種簡潔而方便的方法,可以僅透過其init 函數來利用包的功能,而不需要使用其導出的功能。
以上是Go 的空白標識符如何在不明確函數呼叫的情況下啟用包初始化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!