È anche possibile vedere i diversi errori che si possono ottenere quando si utilizza init
in 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
stesso è gestito da golang/cmd/gc/init.c
:
/*
* 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".
*/
Il suo utilizzo è illustrato in "When is the init()
function in go (golang) run?"
Si noti che è possibile denominare una funzione su un init struct e si può chiamare. – OneOfOne