Без фона в C и только опыт «новичка» в Go Я пытаюсь выяснить, действительно ли main.go
или просто конвенция.Требуется ли main.go в проекте Go?
Я ищу для создания простого веб-API, но может ли кто-нибудь прояснить это для меня?
Без фона в C и только опыт «новичка» в Go Я пытаюсь выяснить, действительно ли main.go
или просто конвенция.Требуется ли main.go в проекте Go?
Я ищу для создания простого веб-API, но может ли кто-нибудь прояснить это для меня?
main.go
в качестве файла не требуется.
Однако для исполняемых файлов требуется пакет main
с func main()
.
Ваше имя файла можно назвать любым, что вы хотите.
например
myawesomeapp.go
package main
func main() {
fmt.Println("Hello World")
}
Запуск go run myawesomeapp.go
будет работать, как ожидалось.
Для веб-сервера (исполняемого файла) вам необходимо иметь package main
с func main()
, но его не нужно называть main.go - имя файла может быть любым, что вы хотите. Из language spec:
Выполнения программы
Полной программа создается путем объединения единого unimported пакета называемых основным пакет со всеми пакетами он импортирует, транзитивны. Основной пакет должен содержать имя пакета main и объявлять функции main, которая не принимает аргументов и не возвращает значения.
func main() { … }
Выполнение программы начинается с инициализации основной пакет, а затем вызова функции Main. Когда возвращается эта функция, завершается выход программы . Он не ждет, пока другие (неосновные) goroutines будут заполнены до .