Golang flag 使用
Golang 大约 1101 字用途
使用命令行时指定字段赋值,类似Spring Boot
以jar
包方式启动时根据不同环境设置不同值。
示例
var s string
var show bool
func main() {
flag.StringVar(&s, "test_filed", "this is default value", "this is description")
flag.BoolVar(&show, "show", false, "no description")
flag.Parse()
}
针对字符串类型字段,-filed="value"
或-filed "value"
两种赋值方式都可被flag.Parse()
解析识别。
go run api_flag.go -test_filed="hello world"
go run api_flag.go -test_filed "hello world"
针对字符串类型字段,以下赋值方式都可赋值布尔类型。
go run api_flag.go -show
go run api_flag.go -show=true
go run api_flag.go -show=t
go run api_flag.go -show=T
go run api_flag.go -show=false
go run api_flag.go -show=f
go run api_flag.go -show=F
go run api_flag.go -show=0
go run api_flag.go -show=1
注意布尔类型的几种赋值方式。
-flag // 只支持bool类型
-flag=x
-flag x // 只支持非bool类型
非预设的参数赋值方式。
go run api_flag.go hello world test1 test2
非预设的参数接收方式。
func main() {
fmt.Println("预设的flag的参数个数:", flag.NFlag())
// go run api_flag.go hello world test1 test2
fmt.Println("非预设的flag的参数:", flag.Args()) // [hello world test1 test2]
fmt.Println(flag.Arg(0)) // hello
fmt.Println("非预设的flag的参数个数:", flag.NArg())
}
阅读 1769 · 发布于 2021-01-14
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Windows 安装 tcpdump阅读 6344
-
Java 并发编程之 AQS ReentrantLock await signal 源码解析阅读 1098
-
算法:希尔排序阅读 749
-
Java 并发编程之 ConcurrentSkipListMap阅读 1061
-
Git 命令之本地仓库上传至远程仓库阅读 1825
-
SpringMVC 请求体接收任意格式参数阅读 225
-
Java 中的 InheritableThreadLocal阅读 1523
-
Docker 配置仓库的加速镜像阅读 887
-
面试题:HashMap 和 Hashtable 的区别阅读 1795
-
Keepalived + Nginx 搭建高可用负载均衡服务器阅读 3313