以下是一个示例代码,展示了如何使用 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)
}在这个示例中,我们首先导入了需要使用的包,包括 flag 和 fmt。
然后,我们定义了几个变量,用于存储命令行参数的值。name 是一个字符串类型的变量,age 是一个整数类型的变量,isAdmin 是一个布尔类型的变量。
接下来,我们使用 flag.StringVar() 和 flag.IntVar() 函数将命令行参数与对应的变量进行绑定。这些函数接受变量的地址作为第一个参数,命令行标记的名称作为第二个参数,变量的默认值作为第三个参数,以及帮助信息的字符串作为第四个参数。
然后,我们调用 flag.Parse() 函数来解析命令行参数。这将扫描命令行中的标记和参数,并将它们与之前绑定的变量进行关联。
最后,我们打印出解析后的参数值,以验证解析是否正确。在这个示例中,我们打印了 name、age 和 isAdmin 变量的值。
要运行这个示例,可以在命令行中使用类似以下的命令:
go run main.go -name John -age 30 -admin这将输出以下内容:
Name: John
Age: 30
Is Admin: true在命令行中,我们使用 -name、-age 和 -admin 标记来指定相应的参数值。-admin 标记没有后面的参数值,因此默认为 true。
通过使用 flag 包,我们可以轻松地处理命令行参数,并根据需要进行相应的逻辑处理。
                










