2015-04-16 8 views
5

Bez tła w C i tylko "początkującego" doświadczenia w Go próbuję sprawdzić, czy w rzeczywistości jest wymagany main.go lub jest tylko konwencją.Czy w projekcie Go wymagane jest main.go?

Szukam prostego interfejsu API, ale czy ktoś może to dla mnie wyjaśnić?

Odpowiedz

13

main.go jako plik nie jest wymagany.

Jednak w przypadku plików wykonywalnych wymagany jest pakiet main z func main().

Nazwę pliku można nazwać, jak tylko chcesz.

Np

myawesomeapp.go

package main 

func main() { 
    fmt.Println("Hello World") 
} 

Running go run myawesomeapp.go będzie działać zgodnie z oczekiwaniami.

4

Dla serwera WWW (plik wykonywalny) musisz mieć numer package main z func main(), ale nie trzeba go nazywać main.go - nazwa pliku może być dowolna. Z language spec:

realizacji Programu

kompletny program jest tworzony poprzez połączenie jednego, unimported pakiet nazwie główny pakiet z wszystkimi pakietami to importu, przechodni. Główny pakiet musi mieć nazwę pakietu main i zadeklarować główną funkcję, 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ływanie funkcji głównej. Gdy funkcja ta powróci, program zostanie zamknięty. Nie czeka na zakończenie innych (nie głównych) goroutinów do .

Powiązane problemy