flag--命令行参数定义多标签示例
// 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--命令行参数定义多标签示例的更多相关文章
- Python命令行参数定义及注意事项
在命令行中运行python代码是很常见的,下面介绍如何定义命令后面跟的参数. 常规用法 Python代码中主要使用下面几行代码来定义并获取需要在命令行中赋值的参数: import argparse p ...
- [Go] 命令行参数解析包(flag 包)使用详解
Go 的 flag 包可以解析命令行的参数. 一.命令行语法 命令行语法主要有以下几种形式: cmd -flag // 只支持bool类型 cmd -flag=xxx cmd -flag ...
- golang-flag - 命令行参数解析
flag - 命令行参数解析 在写命令行程序(工具.server)时,对命令参数进行解析是常见的需求.各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用.如果命令行参数纯粹自己写代码解析, ...
- ylbtech-LanguageSamples-CommandLine(命令行参数)
ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-CommandLine(命令行参数) 1.A,示例(Sample) 返回顶部 “命令行参 ...
- 使用 Apache Commons CLI 解析命令行参数示例
很好的输入参数解析方法 ,转载记录下 转载在: https://www.cnblogs.com/onmyway20xx/p/7346709.html Apache Commons CLI 简介 Apa ...
- Go Flag包-命令行参数解析
Flag包用法 package main import ( "flag" "fmt" ) func main() { var num int var mode ...
- GO语言标准库—命令行参数解析FLAG
flag包是Go语言标准库提供用来解析命令行参数的包,使得开发命令行工具更为简单 常用方法 1.flag.Usage 输出使用方法,如linux下ls -h的帮助输出 2.flag.Type(参数名, ...
- 传递命令行参数示例代码 (C 和 Python)
C语言 在 C 语言中, 使用 main 函数的输入参数 argc 和 argv 传入命令行参数. argc 为 int 类型, 表示传入命令行参数的个数 (argument count); argv ...
- 使用flags定义命令行参数
TensorFlow定义了tf.app.flags,用于支持接受命令行传递参数,其中tf.app.flags.DEFINE_xxx()是添加命令行的optional argument(可选参数),而t ...
随机推荐
- 解除Team Foundation Server 5个用户的限制
因为所有的用户必须加入到Team Foundation Licensed Users组内才能连接上TFS; 所以只要手工修改数据库,就可以破解5用户限制了.我们以TFSGuest4帐户做测试. 具体操 ...
- Javascript模式(第一章简介)------读书笔记
一:模式 模式是一个通用问题的解决方案,可以提供一个更好的实践经验.有用的抽象化表示和解决一类问题的模板. 本书主要讨论如下三种类型的模式 1 设计模式:可复用面向对象软件的基础,包括singleto ...
- C#程序以管理员身份运行
选中"Security",在界面中勾选"Enable ClickOnce Security Settings"后,在Properties下就有自动生成app.m ...
- 【sql】之查询昨天的记录
http://blog.csdn.net/cangchen/article/details/44978531
- mysql数据导出excel格式+乱码解决
1:导出的SQL命令,只需要加上“FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' ” ...
- dubbo简单demo
zookeeper,可以集群,可以只安装一台 依赖dubbo jar, zkclient等 发布服务 <?xml version="1.0" encoding=" ...
- angular(3)服务 --注入---自定义模块--单页面应用
ng内部,一旦发生值改变操作,如$scope.m=x,就会自动轮询$digest队列,触发指定的$watch,调用其回调函数,然后修改dom树. 干货:https://github.com/xufei ...
- UIButton的titleLabe setAttributeSting 首次不起作用
环境xcode7.3 ios9.3 真机模拟器均出现 UIButton的titleLabe setAttributeSting 首次不起作用,之后每一次 都正常,百思不得解,无奈之下改变策略,讲but ...
- Sql Server Job 简单使用
http://www.cnblogs.com/zerocc/p/3400529.html(转载) use msdb EXEC sp_add_job @job_name = 'tk_bakdata' ...
- Spring AOP 由浅入深
(分析基于Spring的版本:version = 4.1.6.RELEASE) Spring AOP工厂: org.springframework.aop.framework.DefaultAopPr ...