Это вопрос новичка ... Предположим, у меня есть код Go в каталоге (репозиторий, инициированный здесь как root), называемый «myprogram». И я пишу некоторые пакеты, разделенные на несколько подкаталогов.Go, Golang: программа, структура пакета для интерфейса командной строки
Тогда я
хранилище, корневой каталог
MyProgram
----------- package1
----------- package2
----------- упаковке3
Затем в каталоге MyProgram, я буду писать код с основным пакетом для основной программы и основной программой будет вызывать все обновления возрастов, которые определены в поддиректории, как следующее:
main.go
import "github.com/username/package1"
import "github.com/username/package2"
import "github.com/username/package3"
func main() {
package1.Function1()
....
}
Тогда я могу просто запустить этот код с
$ go run main.go
я не имею никаких проблем до сих пор. Но что, если эта программа имеет некоторые функции с флагами?
$ go run main.go flag1 flag2
Это работает, но я хочу, чтобы запустить что-то вроде
$ myprogram
$ flag1
....
$ flag2
Поскольку все программы и исходный код будет содержаться под MyProgram каталога, который также название проекта, хранилище
MyProgram
----------- package1
----------- package2
----------- упаковке3
Мы запускаем Vim с командой, что-то вроде этого ...
$ vim
Итак, как я делаю, моя программа запускается командой , а не go запустить main?
Есть ли хранилище с открытым исходным кодом, на которое я могу ссылаться? Или, пожалуйста, дайте мне знать пакет или документацию для чтения. Я попробовал
go install
Но не могу заставить его работать, как я и хотел.
Большое спасибо!
Чтобы расширить ответ на @ FuZxxl: 'go run' следует использовать только для быстрой проверки одного файла. Go - это не язык сценариев, поэтому вы должны его компилировать (он работает эффективно и отбрасывает двоичный файл).Когда у вас есть несколько файлов как часть одного пакета (либо 'package main', либо' package mylibrary'), вам нужно будет использовать 'go build'. – elithrar