Go-标准库-flag(一)

2023-04-22 08:59:25 浏览数 (1)

flag 是 Go 语言标准库中提供的一个命令行参数解析库,可以帮助开发者快速地解析命令行参数。

基本用法

使用 flag 包来解析命令行参数非常简单。首先,我们需要定义一些变量来存储解析后的参数值。然后,我们调用 flag 包中的函数来设置命令行参数选项,并将这些选项与我们定义的变量绑定在一起。最后,我们调用 flag.Parse() 函数来解析命令行参数。

下面是一个示例:

代码语言:javascript复制
package main

import (
	"flag"
	"fmt"
)

func main() {
	var name string
	var age int
	var married bool
	var delay float64

	flag.StringVar(&name, "name", "unknown", "your name")
	flag.IntVar(&age, "age", 0, "your age")
	flag.BoolVar(&married, "married", false, "are you married?")
	flag.Float64Var(&delay, "delay", 0, "delay time")

	flag.Parse()

	fmt.Println("name:", name)
	fmt.Println("age:", age)
	fmt.Println("married:", married)
	fmt.Println("delay:", delay)
}

在上面的示例代码中,我们使用 flag.StringVar()flag.IntVar()flag.BoolVar()flag.Float64Var() 函数来设置命令行参数选项。这些函数的第一个参数是要绑定的变量的地址,第二个参数是选项名称,第三个参数是选项的默认值,第四个参数是选项的描述。我们也可以使用 flag.String()flag.Int()flag.Bool()flag.Float64() 函数来获取命令行参数的值,而不是使用变量地址。

最后,我们调用 flag.Parse() 函数来解析命令行参数。在调用该函数之前,flag 包只会解析 os.Args[1:] 中的命令行参数。如果需要解析其他参数,请在调用 flag.Parse() 之前将它们添加到 os.Args 切片中。

下面是一些命令行示例:

代码语言:javascript复制
$ go run main.go -name Alice -age 18 -married=true -delay 1.5
name: Alice
age: 18
married: true
delay: 1.5
代码语言:javascript复制
$ go run main.go -name Bob
name: Bob
age: 0
married: false
delay: 0
go

0 人点赞