猿问

为什么你不能在 Go 中命名一个函数“init”?

所以,今天在我编写代码时,我发现使用名称创建一个函数会init产生一个错误method init() not found,但是当我将它重命名为startup它时一切正常。

“init”这个词是为 Go 中的某些内部操作保留的,还是我在这里遗漏了什么?


哈士奇WWW
浏览 178回答 2
2回答

大话西游666

您还可以查看使用initin时可能遇到的不同错误golang/test/init.go// Verify that erroneous use of init is detected.// Does not compile.package mainimport "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".*/
随时随地看视频慕课网APP

相关分类

Go
我要回答