package main import (
"flag"
"fmt" "github.com/golang/glog"
) /* 解析 flag
必须先定义flag 命令行有 -port=xx 如果没有 var port =xx声明则会报错flag provided but not defined: -port 在所有的 flag 定义完成之后,可以通过调用 flag.Parse() 进行解析。 命令行 flag 的语法有如下三种形式: -flag // 只支持bool类型 此时为true
-flag=x
-flag x // 只支持非bool类型
以上语法对于一个或两个‘-’号,效果是一样的,但是要注意对于第三种情况,只能用于非 bool 类型的 flag。原因是:如果支持,那么对于这样的命令 cmd -x *,如果有一个文件名字是:0或false等,则命令的原意会改变(bool 类型可以和其他类型一样处理,其次 bool 类型支持 -flag 这种形式,因为Parse()中,对 bool 类型进行了特殊处理)。默认的,提供了 -flag,则对应的值为 true,否则为 flag.Bool/BoolVar 中指定的默认值;如果希望显示设置为 false 则使用 -flag=false。 int 类型可以是十进制、十六进制、八进制甚至是负数;bool 类型可以是1, 0, t, f, true, false, TRUE, FALSE, True, False。Duration 可以接受任何 time.ParseDuration 能解析的类型。 注:如果bool类型的参数在命令行中用了-flag false这种形式时,其后的参数都会被当做非flag(non-flag)参数,non-flag 参数后面解释。
*/
func flagTest(){
//go run main.go -port=false --data sssqqq no_flag
fmt.Println(flag.Args()) // 获取非flag参数 [no_flag]
} var local = flag.Bool("port", false, "testing!!")
var str = flag.String("data", "des", "testing!!")
func main() {
flag.Parse()
flagTest()
fmt.Println("test", *local)
fmt.Println("test", *str)
defer glog.Flush() }

最新文章

  1. ResultSet相关ResultSetMetaData详细
  2. html基础学习
  3. Vim找不到配色文件的解决方法
  4. [Java面试十一]数据库总结.
  5. java实现远程储存读取文件
  6. Android Support ;v4、v7、v13的区别
  7. 【LeetCode】169 - Majority Element
  8. systemtap-与 oracle 转
  9. apache开源项目--HttpComponents
  10. ###g++编译器
  11. asp.net mvc中匿名类dynamic
  12. JavaScript修改DOM节点时,样式优先级的问题
  13. GlusterFS卷的种类
  14. 测试开发之前端——No9.HTML5中的视频/音频
  15. python------面向对象介绍之经典类与新式类的继承顺序
  16. 坑爹的Sun JDK
  17. m_Orchestrate learning system---三十四、使用重定义了$的插件的时候最容易出现的问题是什么
  18. iOS 视频组件
  19. perf 移植
  20. DIV焦点事件详解 --【focus和tabIndex】​

热门文章

  1. install slax record
  2. python3 django项目从项目中导出依赖包
  3. 一篇文章搞懂Python装饰器所有用法
  4. django 2.2和mysql使用的常见问题
  5. linux - mysql:查看 mysql 是否安装成功
  6. scikit-learn机器学习(二)逻辑回归进行二分类(垃圾邮件分类),二分类性能指标,画ROC曲线,计算acc,recall,presicion,f1
  7. 使用super函数----增量重写普通方法和构造方法
  8. asp.net mvc 中Html.ValidationSummary显示html
  9. leetcode 四数之和
  10. Django学习参考资料