2015-04-16 1 views
5

Без фона в C и только опыт «новичка» в Go Я пытаюсь выяснить, действительно ли main.go или просто конвенция.Требуется ли main.go в проекте Go?

Я ищу для создания простого веб-API, но может ли кто-нибудь прояснить это для меня?

ответ

13

main.go в качестве файла не требуется.

Однако для исполняемых файлов требуется пакет main с func main().

Ваше имя файла можно назвать любым, что вы хотите.

например

myawesomeapp.go

package main 

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

Запуск go run myawesomeapp.go будет работать, как ожидалось.

4

Для веб-сервера (исполняемого файла) вам необходимо иметь package main с func main(), но его не нужно называть main.go - имя файла может быть любым, что вы хотите. Из language spec:

Выполнения программы

Полной программа создается путем объединения единого unimported пакета называемых основным пакет со всеми пакетами он импортирует, транзитивны. Основной пакет должен содержать имя пакета main и объявлять функции main, которая не принимает аргументов и не возвращает значения.

func main() { … } 

Выполнение программы начинается с инициализации основной пакет, а затем вызова функции Main. Когда возвращается эта функция, завершается выход программы . Он не ждет, пока другие (неосновные) goroutines будут заполнены до .

Смежные вопросы