go - init() 未在新包中运行

标签 go

我已经有一段时间没有使用 Go 了,我刚刚开始重新处理一个旧项目。

我在许多包中都有 init() 函数,它们工作正常。然而,我刚刚创建了一个新包并添加了一个 init() 函数,但它不会像其他包一样在初始化期间运行。如果我将 init() 函数放在以前存在的包中,它运行良好...

我相信这是一个简单的问题,但我终究无法解决。我可能做错了什么?

最佳答案

如果您的主程序根本不导入您的新包...它的 init() 函数将不会被调用。

如果只想执行导入包的init()函数,不想使用包的其他内容,应该修改import "foo" 导入 _ "foo"

参见 init function (及其在 full documentation 中的 program execution)。

关于go - init() 未在新包中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41887640/

相关文章:

go - Go 中的三个逗号语法是什么?

Go:函数返回指向内存的指针

go - 关于 golang 中的 `&MyType{}` 模式的任何文档/文章?

c - Go 中的动态 FFI

有 OR 查询的 gorm

bash - 使用 Go 运行带参数的 bash 文件

rest - 允许使用 3rd 方 API 从我在 Golang 中的 REST 端点下载文件

go - 如何检查传递给函数的参数在 Go 中是否为 nil?

go - 避免在 cgo 导出函数文档中出现空行

json - 如何解析/反序列化动态 JSON