所以,今天在我编写代码时,我发现使用名称创建一个函数会init产生一个错误method init() not found,但是当我将它重命名为startup它时一切正常。“init”这个词是为 Go 中的某些内部操作保留的,还是我在这里遗漏了什么?
2 回答
大话西游666
TA贡献1817条经验 获得超14个赞
您还可以查看使用initin时可能遇到的不同错误golang/test/init.go
// Verify that erroneous use of init is detected.
// Does not compile.
package main
import "runtime"
func init() {
}
func main() {
init() // ERROR "undefined.*init"
runtime.init() // ERROR "unexported.*runtime\.init"
var _ = init // ERROR "undefined.*init"
}
init本身由golang/cmd/gc/init.c:
现在在cmd/compile/internal/gc/init.go:
/*
* a function named init is a special case.
* it is called by the initialization before
* main is run. to make it unique within a
* package and also uncallable, the name,
* normally "pkg.init", is altered to "pkg.init·1".
*/
- 2 回答
- 0 关注
- 174 浏览
添加回答
举报
0/150
提交
取消