首页  

GO flag 命令行参数解析     所属分类 go 浏览量 860
flag用于解析命令行选项

package main

import (
  "fmt"
  "flag"
)

var (
  intflag int
  boolflag bool
  stringflag string
)

func init() {
  flag.IntVar(&intflag, "intflag", 0, "int flag value")
  flag.BoolVar(&boolflag, "boolflag", false, "bool flag value")
  flag.StringVar(&stringflag, "stringflag", "default", "string flag value")
}

func main() {
  flag.Parse()

  fmt.Println(intflag,boolfalg,stringflag)
}

go run flagdemo.go  -h

go run flagdemo.go 
int flag: 0
bool flag: false
string flag: default


go run flagdemo.go
0 false default

go run flagdemo.go  -intflag 9 -boolflag true -stringflag hello
9 true default

go run flagdemo.go  -intflag=9 -boolflag=1 -stringflag=hello
9 true hello

-stringflag=hello 才能解析到值

go run flagdemo.go  -intflag=9 -boolflag -stringflag hello
9 true hello
这个能解析 ,应该是 boolflag 导致的  
注意 boolflag !!! 很特殊 !!!!!!

go run flagdemo.go  -intflag=9 -boolflag=1 -stringflag='hello world'
9 true hello world

遇到第一个非选项参数(即不是以-和--开头的)或终止符--,解析停止

go run flagdemo.go noflag -intflag=9 -boolflag=1 -stringflag=xyz
0 false default

go run flagdemo.go  -intflag=9 -- -boolflag=1 -stringflag=xyz
9 false default


go run flagdemo.go  -boolflag   
0 true default

bool类型参数出现就为true


go run flagdemo.go  -boolflag  -intflag=7
7 true default


https://gitee.com/dyyx/hellocode/blob/master/web/tech/go/demo/flagdemo.go

上一篇     下一篇
http request to javabean

数据对象转换Object mapping

mysql时间函数

保险合同要点

开公司要知道的财税制度

GO panic recover