首页 >后端开发 >Golang >为什么在 Go 中导入包时使用下划线?

为什么在 Go 中导入包时使用下划线?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-24 14:43:10892浏览

Why Use Underscores When Importing Packages in Go?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn