zoukankan      html  css  js  c++  java
  • glang flag

    
    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()
    
    
    }
    
    
    
    
  • 相关阅读:
    相机中白平衡的算法模拟实现
    双边滤波算法的简易实现bilateralFilter
    图像处理卷积算法实现
    最快的3x3中值模糊
    黑米手机抢购软件通杀破解补丁
    分享一款12306购票软件
    快速堆栈模糊算法
    大数据(1)---大数据及HDFS简述
    springboot自动装配(3)---条件注解@Conditional
    随机瓜分百万红包
  • 原文地址:https://www.cnblogs.com/lajiao/p/11691676.html
Copyright © 2011-2022 走看看