golang中通过flag获取命令行参数

x33g5p2x  于2021-12-30 转载在 Go  
字(0.8k)|赞(0)|评价(0)|浏览(458)

golang中的flag提供了一种基于命令行的、开箱即用的、提取命令行参数的方式。

package main

import (
	"flag"
	"fmt"
)

func main() {
	wordPtr := flag.String("word", "foo", "a string")
	numPtr := flag.Int("num", 123, "a number")

	flag.Parse()

	fmt.Printf("word = %s\n", *wordPtr)
	fmt.Printf("num = %d\n", *numPtr)
}

这样就可以通过命令行来获取参数了,每个参数有一个名字、默认值和说明。

$ go run flat_demo.go -word=hello
word = hello
num = 123

上面的命令指定了word,但没有指定num,所以num的值是默认值。如果不加任何参数的话,则两个都会取默认值。

也可以这样指定多个参数,像下面这样

$ go run flat_demo.go -word=hello -num=9
word = hello
num = 9

我们还可以通过-h--help来查看参数的含义和默认值

$ go run flat_demo.go --help
Usage of /var/folders/xf/_wgd_jh5553d3cdtggwd8qq80000gp/T/go-build2482982965/b001/exe/flat_demo:
  -num int
        a number (default 123)
  -word string
        a string (default "foo")

不得不说这个封装非常的实用,我之前实用其它时,单单是用循环来提取参数就要写好多代码。

相关文章