Warum kannst du in Go "init" keine Funktion benennen?

7

Also, heute, während ich programmiert habe, habe ich herausgefunden, dass das Erstellen einer Funktion mit dem Namen init einen Fehler method init() not found erzeugt hat, aber wenn ich es in startup umbenannt habe, hat alles funktioniert.

Wird das Wort "init" für eine interne Operation in Go beibehalten oder fehlt mir hier etwas?

    
Max 06.09.2014, 11:32
quelle

2 Antworten

16

Ja, die Funktion init() ist speziell. Es wird automatisch ausgeführt, wenn ein Paket geladen wird. Sogar das Paket main kann eine oder mehrere init() -Funktionen enthalten, die ausgeführt werden, bevor das eigentliche Programm beginnt: Ссылка

Es ist Teil der Paketinitialisierung, wie in der Sprachspezifikation erklärt: Ссылка

Es wird häufig zum Initialisieren von Paketvariablen usw. verwendet.

    
siritinga 06.09.2014, 11:36
quelle
8

Sie können auch die verschiedenen Fehler sehen, die bei Verwendung von init in golang/test/init.go auftreten können. :

%Vor%

init selbst wird verwaltet von golang/cmd/gc/init.c :

%Vor%

Seine Verwendung wird in " dargestellt. Wann wird die Funktion init() in go (olang) ausgeführt? "

    
VonC 06.09.2014 11:47
quelle

Tags und Links