Während andere Antworten es vollständig beschrieben haben, bedeutet dies für "Show me The Code" -Personen im Grunde: Variablen auf Paketebene erstellen und die init
Funktion dieses Pakets ausführen .
Und (falls vorhanden) die Hierarchie der Variablen und init
Funktionen auf Paketebene von Paketen, die dieses Paket importiert hat.
Der einzige Nebeneffekt, den ein Paket erzielen kann, ohne tatsächlich aufgerufen zu werden, besteht darin, Variablen auf Paketebene (öffentlich oder privat) und innerhalb seiner init
Funktion zu erstellen .
Hinweis : Es gibt einen Trick, eine Funktion vor einer geraden init
Funktion auszuführen . Wir können hierfür Variablen auf Paketebene verwenden, indem wir sie mit dieser Funktion initialisieren.
func theVeryFirstFunction() int {
log.Println("theVeryFirstFunction")
return 6
}
var (
Num = theVeryFirstFunction()
)
func init() { log.Println("init", Num) }