前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go-标准库-flag(一)

Go-标准库-flag(一)

原创
作者头像
堕落飞鸟
发布2023-04-22 08:59:25
1600
发布2023-04-22 08:59:25
举报
文章被收录于专栏:飞鸟的专栏

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本用法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档