添加 Go 命令参数

3297 단어 go
package main

import (
    "flag"
    "fmt"
)

var name string

func init() {
    // flag.StringVar 接受了四个参数
    // 第一个参数是用于存储该命令参数值的地址
    // 第二个参数指定该命令参数的名称 -name(go run main.go -name="Robot")
    // 第三个参数是为了指定在未追加该命令参数时的默认值,这里是everyone
    // 该命令参数的简短说明了,在打印命令说明时会用到
    flag.StringVar(&name, "name", "everyone", "The greeting object")
}

// 命令参数
// 使用 go run go文件名称 -name = "Robot",例如;
// > go run main.go -name="Robot"
// > Hello, Robot!
func main() {
    // 用于解析命令参数,并把他们的数值赋给相应的变量
    flag.Parse()
    fmt.Printf("Hello, %s!\n", name)
}


如果想查看该命令源码文件的参数说明,可以这么做:

go run main.go --help


显示结果

Usage of /var/folders/l1/14cwhjh93b75z5n2rk92pw9w0000gn/T/go-build1154249498/b001/exe/main:
  -name string
        The greeting object (default "everyone")



其中下面的代码是go run命令构建上述命令源码文件时临时生成的可执行文件的完整路径.

/var/folders/l1/14cwhjh93b75z5n2rk92pw9w0000gn/T/go-build1154249498/b001/exe/main


如果我们先构建这个命令源码文件再运行生成的可执行文件,像这样:

go build main.go
./main --help


输出结果为:

Usage of ./main:
  -name string
        The greeting object (default "everyone")


怎样自定义命令源码文件的参数使用说明



这有很多种方式,最简单的一种方式就是对变量flag.Usage重新赋值.

flag.Usage의 형식은 func(), 형식은 다음과 같습니다.

flag.Usage는 demo2.go를 실행하고 --help를 통해 실행하고 있습니다.

注意,对flag.Usage的赋值必须在调用flag.Parse函数之前.

좋은 웹페이지 즐겨찾기