加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

GoLang之命令行使用方法——flag package

发布时间:2020-12-16 18:57:59 所属栏目:大数据 来源:网络整理
导读:2013-12-08 wcdj go语言通过使用标准库里的flag包来处理命令行参数。 Package flag implements command-line flag parsing. http://golang.org/pkg/flag/ http://golang.org/pkg/ 几点注意事项: 1,通过flag.String(),Bool(),Int()等方式来定义命令行中需要

2013-12-08 wcdj


go语言通过使用标准库里的flag包来处理命令行参数。

Package flag implements command-line flag parsing.

http://golang.org/pkg/flag/

http://golang.org/pkg/


几点注意事项:

1,通过flag.String(),Bool(),Int()等方式来定义命令行中需要使用的flag。

2,在定义完flag后,通过调用flag.Parse()来进行对命令行参数的解析。

3,命令行参数的格式可以是:

-flag xxx (使用空格,一个 - 符号)

--flag xxx (使用空格,两个 - 符号)

-flag=xxx (使用等号,一个 - 符号)

--flag=xxx (使用等号,两个 - 符号)

其中,布尔类型的参数防止解析时的二义性,应该使用等号的方式指定。


测试用例:

package main

import (
 "flag"
 "fmt"
)

var Input_pstrName = flag.String("name","gerry","input ur name")
var Input_piAge = flag.Int("age",20,"input ur age")
var Input_flagvar int

func Init() {
 flag.IntVar(&Input_flagvar,"flagname",1234,"help message for flagname")
}

func main() {
 Init()
 flag.Parse()

 // After parsing,the arguments after the flag are available as the slice flag.Args() or individually as flag.Arg(i). The arguments are indexed from 0 through flag.NArg()-1
 // Args returns the non-flag command-line arguments
 // NArg is the number of arguments remaining after flags have been processed
 fmt.Printf("args=%s,num=%dn",flag.Args(),flag.NArg())
 for i := 0; i != flag.NArg(); i++ {
  fmt.Printf("arg[%d]=%sn",i,flag.Arg(i))
 }

 fmt.Println("name=",*Input_pstrName)
 fmt.Println("age=",*Input_piAge)
 fmt.Println("flagname=",Input_flagvar)
}

/*
output:
mba:filter gerryyang$ ./test_flag --name "aaa" -age=123 -flagname=0x11 para1 para2 para3
args=[para1 para2 para3],num=3
arg[0]=para1
arg[1]=para2
arg[2]=para3
name= aaa
age= 123
flagname= 17
*/



参考:

标准库—命令行参数解析flag

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读