0
点赞
收藏
分享

微信扫一扫

Golang flag包:命令行参数解析入门代码示例


以下是一个示例代码,展示了如何使用 flag 包处理命令行参数:

package main

import (
	"flag"
	"fmt"
)

func main() {
	// 定义命令行参数对应的变量
	var name string
	var age int
	var isAdmin bool

	// 绑定命令行参数与变量
	flag.StringVar(&name, "name", "", "Enter your name")
	flag.IntVar(&age, "age", 0, "Enter your age")
	flag.BoolVar(&isAdmin, "admin", false, "Are you an admin?")

	// 解析命令行参数
	flag.Parse()

	// 打印解析后的参数值
	fmt.Println("Name:", name)
	fmt.Println("Age:", age)
	fmt.Println("Is Admin:", isAdmin)
}

在这个示例中,我们首先导入了需要使用的包,包括 flagfmt

然后,我们定义了几个变量,用于存储命令行参数的值。name 是一个字符串类型的变量,age 是一个整数类型的变量,isAdmin 是一个布尔类型的变量。

接下来,我们使用 flag.StringVar()flag.IntVar() 函数将命令行参数与对应的变量进行绑定。这些函数接受变量的地址作为第一个参数,命令行标记的名称作为第二个参数,变量的默认值作为第三个参数,以及帮助信息的字符串作为第四个参数。

然后,我们调用 flag.Parse() 函数来解析命令行参数。这将扫描命令行中的标记和参数,并将它们与之前绑定的变量进行关联。

最后,我们打印出解析后的参数值,以验证解析是否正确。在这个示例中,我们打印了 nameageisAdmin 变量的值。

要运行这个示例,可以在命令行中使用类似以下的命令:

go run main.go -name John -age 30 -admin

这将输出以下内容:

Name: John
Age: 30
Is Admin: true

在命令行中,我们使用 -name-age-admin 标记来指定相应的参数值。-admin 标记没有后面的参数值,因此默认为 true

通过使用 flag 包,我们可以轻松地处理命令行参数,并根据需要进行相应的逻辑处理。


举报

相关推荐

0 条评论