问题

使用golang flag包开发命令行程序或者读取命令行参数时,有时候参数为bool值会读取不到后面的参数

原因

golang flag 包对于命令行的参数格式有要求,如下

1
2
3
-flag 
-flag=x
-flag x //只支持非bool类型

所以在使用bool值的参数时,导致读取参数错误后面的参数就读取不出来

解决方案

  1. bool值的参数写到最后面

    image-20200704212200790

  2. 改为-s=true方式

    image-20200704212222941