package main
import (
"os"
"otherpackage"
// Your child packages get imported here.
)
func main() {
// The first argument
// is always program name
// So os.Args[1] is the first dynamic argument
arg1 := os.Args[1]
// use arg1 to decide which packages to call
if arg1 == "option1" {
// option1 code executes here.
otherpackage.DoThis()
}
if arg1 == "option2" {
// option2 code executes here.
otherpackage.DoThat()
}
}
然后,您可以使用以下命令运行程序: go run main.go option1 来自Golang文档: 程序执行一个完整的程序是通过将一个未导入的软件包(称为main软件包)与它导入的所有软件包进行传递链接而创建的。main软件包必须具有软件包名main,并声明一个不带参数也不返回值的函数main。
2条答案
按热度按时间pcww981p1#
main2.go文件的包必须是main。当项目中有一个main包和一个main函数时,编译器知道它将被编译为可执行文件,而不是库。
因此,尝试在main 2/main2.go文件中将package command-line-arguments更改为package main。
cbeh67ev2#
把一个golang可执行文件想象成一个只有前门和许多不同房间的房子。一旦你在房子里,你可以通过任何你想要的门,但是要进入房子,你必须先通过前门。前门是main()函数。
Golang进入可执行文件的入口点是通过main()。如果你想为单个可执行文件运行不同的逻辑路径,你可以使用main()作为使用命令行参数的其他包的路由函数:
然后,您可以使用以下命令运行程序:
go run main.go option1
来自Golang文档:
程序执行一个完整的程序是通过将一个未导入的软件包(称为main软件包)与它导入的所有软件包进行传递链接而创建的。main软件包必须具有软件包名main,并声明一个不带参数也不返回值的函数main。