2015-04-16 14 views
5

Senza uno sfondo in C e solo un'esperienza "per principianti" in Go, sto cercando di capire se lo standard main.go sia effettivamente richiesto o sia solo una convenzione.È richiesto main.go in un progetto Go?

Sto cercando di creare una semplice API Web, ma qualcuno potrebbe chiarirlo?

risposta

13

main.go come file non richiesto.

Tuttavia, per gli eseguibili è necessario un pacchetto main con func main().

Il nome del file può essere chiamato come volete.

es

myawesomeapp.go

package main 

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

Esecuzione go run myawesomeapp.go funzionerà come previsto.

4

Per un web server (un eseguibile) è necessario disporre di un package main con un func main(), ma non ha bisogno di essere chiamato main.go - il nome del file può essere tutto quello che vuoi che sia. Dal language spec:

L'esecuzione del programma

Un programma completo è creato collegando un unico pacchetto, unimported chiamato il pacchetto principale con tutti i pacchetti che importa, transitivamente. Il pacchetto principale deve avere il nome del pacchetto main e dichiarare una funzione main che non accetta argomenti e non restituisce alcun valore.

func main() { … } 

L'esecuzione del programma inizia inizializzando il pacchetto principale e quindi invocando la funzione principale. Al termine di tale chiamata di funzione, viene chiuso il programma . Non attende che altre (non principali) goroutine arrivino a complete.

Problemi correlati