// TestFlag2 project main.go
package main import (
"flag"
"fmt"
) func main() {
//定义Flag
//方式一:通过flag.String(), Bool(), Int() 等flag.Xxx()方法,该种方式返回一个相应的指针
namePtr := flag.String("name", "Anson", "user's name")
agePtr := flag.Int("age", 22, "user's age")
vipPtr := flag.Bool("vip", true, "is a vip user")
//方式二:通过flag.XxxVar()方法将flag绑定到一个变量,该种方式返回值类型
var email string
flag.StringVar(&email, "email", "abc@gmail.com", "user's email")
//还有第三种方式,通过flag.Var()绑定自定义类型,自定义类型需要实现Value接口(Receives必须为指针)
//flag.Var(&flagVal, "name", "help message for flagname") //解析命令行参数,值保存到定义的flag
flag.Parse() //调用Parse解析后,就可以直接使用flag本身(指针类型)或者绑定的变量了(值类型)
//还可通过flag.Args(), flag.Arg(i)来获取非flag命令行参数
others := flag.Args() //保存Flag以外的变量
fmt.Println("name:", *namePtr)
fmt.Println("age:", *agePtr)
fmt.Println("vip:", *vipPtr)
fmt.Println("email:", email)
fmt.Println("other:", others)
fmt.Println("---------")
for i := 0; i < len(flag.Args()); i++ {
fmt.Println("Arg", i, "=", flag.Arg(i))
}
}

执行结果:

testflag2  -name aa -age 33 -vip=false aaa bbb ccc 111 222
name: aa
age: 33
vip: false
email: abc@gmail.com
other: [aaa bbb ccc 111 222]
---------
Arg 0 = aaa
Arg 1 = bbb
Arg 2 = ccc
Arg 3 = 111
Arg 4 = 222

flag--命令行参数定义多标签示例的更多相关文章

  1. Python命令行参数定义及注意事项

    在命令行中运行python代码是很常见的,下面介绍如何定义命令后面跟的参数. 常规用法 Python代码中主要使用下面几行代码来定义并获取需要在命令行中赋值的参数: import argparse p ...

  2. [Go] 命令行参数解析包(flag 包)使用详解

    Go 的 flag 包可以解析命令行的参数. 一.命令行语法 命令行语法主要有以下几种形式: cmd -flag       // 只支持bool类型 cmd -flag=xxx cmd -flag ...

  3. golang-flag - 命令行参数解析

    flag - 命令行参数解析 在写命令行程序(工具.server)时,对命令参数进行解析是常见的需求.各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用.如果命令行参数纯粹自己写代码解析, ...

  4. ylbtech-LanguageSamples-CommandLine(命令行参数)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-CommandLine(命令行参数) 1.A,示例(Sample) 返回顶部 “命令行参 ...

  5. 使用 Apache Commons CLI 解析命令行参数示例

    很好的输入参数解析方法 ,转载记录下 转载在: https://www.cnblogs.com/onmyway20xx/p/7346709.html Apache Commons CLI 简介 Apa ...

  6. Go Flag包-命令行参数解析

    Flag包用法 package main import ( "flag" "fmt" ) func main() { var num int var mode ...

  7. GO语言标准库—命令行参数解析FLAG

    flag包是Go语言标准库提供用来解析命令行参数的包,使得开发命令行工具更为简单 常用方法 1.flag.Usage 输出使用方法,如linux下ls -h的帮助输出 2.flag.Type(参数名, ...

  8. 传递命令行参数示例代码 (C 和 Python)

    C语言 在 C 语言中, 使用 main 函数的输入参数 argc 和 argv 传入命令行参数. argc 为 int 类型, 表示传入命令行参数的个数 (argument count); argv ...

  9. 使用flags定义命令行参数

    TensorFlow定义了tf.app.flags,用于支持接受命令行传递参数,其中tf.app.flags.DEFINE_xxx()是添加命令行的optional argument(可选参数),而t ...

随机推荐

  1. webbrowser 禁用 alert

    void web_Navigated(object sender, WebBrowserNavigatedEventArgs e) { var web = sender as System.Windo ...

  2. C++ 资源大全

    http://www.uml.org.cn/c++/201411145.asp http://ezlippi.com/blog/2014/12/c-open-project.html <C++ ...

  3. QQ通信原理及QQ是怎么穿透内网进行通信的? (转)

    原:http://f543711700.iteye.com/blog/978044#bc2344608 QQ是一个基于TCP/UDP协议的通讯软件 发送消息的时候是UDP打洞,登陆的时候使用HTTP~ ...

  4. angular2开发01

    // */ // ]]> angular2开发01 1. angular2 开发准备 1.1. 安装node 1.2. 安装npm 1.3. 运行qickStart 1 angular2 开发准 ...

  5. javascript序列化和反序列化

    一. JavaScript中的对象序列化(Serialize)和反序列化(Deserialize),简单实例: var obj = {id: 1, name: 'yoyo', age: undefin ...

  6. python---map,filter,reduce

    map 遍历序列,对序列中每个元素进行操作,最终获取新的序列. li = [11, 22, 33] new_list = map(lambda a: a + 100, li) #new_list = ...

  7. Files 的值“ < < < < < < < .mine”无效。路径中具有非法字符。

    出现这个问题的原因是,用svn时,发生了冲突.解决方法:先解决代码冲突,然后在你的工程OBJ/DEBUG目录下,找到 工程名.csproj.FileListAbsolute.txt的文件打开并删除含有 ...

  8. go 语言中常用的包

    来自学习go语言.pdf 译者刑星 ==== fmt 包fmt实现了格式化IO函数,这与c的printf和scanf类似,格式化短语派生于c %v 默认格式的值.当打印结构时,加号(%+v)会增加字段 ...

  9. Alembic

    Layers of the Library:  AbcA(low)  -->  Abc  -->  AbcGeom(high) Container Hierarchy in Alembic ...

  10. 各公司年资金归集汇总sql

    select bd_accid.accidcode, bd_accid.accidname, -- fts_voucher_b.interestdate, -- fts_voucher_b.summa ...