命令源码文件是程序的运行入口,是每个可独立运行的程序必须拥有的
无论是 Linux 还是 Windows,如果用过命令行(command line)的话,肯定就会知道几乎所有命令(command)都是可以接收参数(argument)的。通过构建或安装命令源码文件,生成的可执行文件就可以被视为“命令”,既然是命令,那么就应该具备接收参数的能力。
完整代码如下
package main
import (
"flag"
"fmt"
)
var name string
func init() {
flag.StringVar(&name, "name", "默认值", "描述")
}
func main() {
flag.Parse()
fmt.Printf("hello %s!\n", name)
}
如何配置入参?
有多种方式,最简单的一种方式就是对变量 flag.Usage
重新赋值。flag.Usage
的类型是 func()
,即一种无参数声明且无结果声明的函数类型。
flag.Usage
变量在声明时就已经被赋值了,所以我们才能够在运行命令 go run demo3.go --help
时看到正确的结果。
注意,对 flag.Usage
的赋值必须在调用 flag.Parse
函数之前。
完整代码如下:
package main
import (
"flag"
"fmt"
"os"
)
var name string
func init() {
flag.StringVar(&name, "name", "默认值", "描述")
}
func main() {
flag.Usage = func() {
fmt.Fprintf(os.Stderr, "Usage of %s:\n", "question")
flag.PrintDefaults()
}
flag.Parse()
fmt.Printf("hello %s!\n", name)
}
执行如下图:
命令源码文件及命令行参数 至此结束。