2017-02-19 14 views
7

intro/Przykładowe Go progs Widziałem i eksperymentował z początku zPackage "main" i func "main"

package main 

i mają

func main() 

Czy istnieje jakiś związek między " main "w linii pakietowej i" main "w linii func? Zgaduję, że nie. C/C++ używa tego samego "głównego" punktu wejścia. Po prostu chcę się upewnić. Nie widziałem żadnych dokumentów, które mówią, że użycie "głównego" jest tylko zbiegiem okoliczności.

+1

Oczywiście nie jest to * zbieg okoliczności *, oba zostały nazwane tak z dobrego powodu. – hobbs

Odpowiedz

11

Punkt wejścia do aplikacji jest funkcja w pakiecie mainas described in the specificationmain:

Kompletny program został stworzony przez łączenie pojedyncze, pakiet unimported zwany główny pakiet ze wszystkimi pakietami importuje , przechodnie. Główny pakiet musi mieć nazwę pakietu main i zadeklarować funkcję main, która nie przyjmuje argumentów i nie zwraca żadnej wartości.

func main() { … } 

wykonanie programu rozpoczyna się od inicjalizacji główny pakiet, a następnie wywołując funkcję main. Gdy funkcja ta powróci, program zostanie zamknięty. Nie czeka na zakończenie innych (nie głównych) goroutinów.

+0

Dziękuję za wyjaśnienie pakietu. – mnemotronic