Heim > Backend-Entwicklung > Golang > Wann und wie wird die Funktion „init()' von Go ausgeführt?

Wann und wie wird die Funktion „init()' von Go ausgeführt?

Linda Hamilton
Freigeben: 2024-12-24 10:26:16
Original
439 Leute haben es durchsucht

When and How Does Go's `init()` Function Execute?

Wann wird die Funktion init() ausgeführt?

Die Funktion init() ist eine spezielle Funktion in Go, die während der Paketinitialisierung ausgeführt wird. Es wird normalerweise verwendet, um Initialisierungsaufgaben auszuführen, die nicht von der main()-Funktion des Pakets verarbeitet werden können.

Laut der Go-Dokumentation wird die init()-Funktion nach allen Variablendeklarationen aufgerufen im Paket haben ihre Initialisierer ausgewertet. Dies bedeutet, dass alle globalen Variablen und ihre Initialisierer verarbeitet wurden, bevor die Funktion init() ausgeführt wird.

Das folgende Beispiel demonstriert dieses Verhalten:

var WhatIsThe = AnswerToLife()

func AnswerToLife() int { // 1
    return 42
}

func init() { // 2
    WhatIsThe = 0
}

func main() { // 3
    if WhatIsThe == 0 {
        fmt.Println("It's all a lie.")
    }
}
Nach dem Login kopieren

In diesem Beispiel ist AnswerToLife ()-Funktion (1) wird garantiert ausgeführt, bevor die init()-Funktion (2) aufgerufen wird. Die Funktion init() wird dann garantiert ausgeführt, bevor die Funktion main() (3) aufgerufen wird.

Beachten Sie, dass die Funktion init() immer aufgerufen wird, unabhängig davon, ob eine Funktion main() vorhanden ist oder nicht. Funktion. Wenn Sie also ein Paket importieren, das über eine init()-Funktion verfügt, wird diese ausgeführt.

Das obige ist der detaillierte Inhalt vonWann und wie wird die Funktion „init()' von Go ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage