[Go] flag package 指南: 命令行参数标记的解析

 

flag 是 Golang 的官方包。

支持用法有三种,不同之处是二三两种用法是 Var() 函数可以绑定 flag 到一个变量上。

直接调用指定类型的函数有多种,如 flag.String(), Bool(), Int() 等等。

import "flag"
var nFlag = flag.Int("n", 1234, "help message for flag n")

 

var flagvar int
func init() {
    flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
}

 

flag.Var(&flagVal, "name", "help message for flagname")

 

定义了 flag 之后,调用 flag.Parse() 解析命令行到定义的flag中。

随后它们可以直接使用,直接使用时,它们都是指针类型。如果绑定到变量,它们是值。

fmt.Println("ip has value ", *ip)
fmt.Println("flagvar has value ", flagvar)

同样,Parse之后,flag.Args() 或者 flag.Arg(i) 也都可用。参数索引从 0 ~ flag.NArg()-1

 

命令行的三种语法:

  -flag

  -flag=x

  -flag x

  最后一种只针对 非bool型的 flag 值。

 

原版详细的注释建议在 IDE 中直接跳转到 flag.go 查看源码上方内容。

 

Refer:golang flag package

Link:https://www.cnblogs.com/farwish/p/15664459.html

posted on 2021-12-08 21:31  ercom  阅读(128)  评论(0编辑  收藏  举报