// 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. ExtJs 学习之开篇(三)Ext.grid.Panel表格中的处理

    Ext.grid.Panel Ext.create('Ext.grid.Panel',{        title:'测试表格',        width:400,        height:20 ...

  2. c# foreach循环二维数组

    假设已有二维数组 array 行4, 列4for(int i=0;i<4;i++)//行的行数{ for(int j=0;j<4;j++)//行的列数 { console.wrie( ar ...

  3. 实战之中兴ZXHN F460光猫破解超级密码+开启无线路由功能

    本文面向小白用户,即使你不懂电脑看完你也会破解光猫,网上有些文章的操作方法是错误的.按照我这篇文章,只要型号对,那么肯定没问题!电信光纤入户,家里用的是电信送的中兴查看 ZXHN F460 中的全部文 ...

  4. PHP MVC简单介绍,对PHP当前主流的MVC做了一个总结

    东抄西抄,对PHP当前主流的MVC做了一个总结PPT. 希望对初学者有点帮助! PHP MVC初步.ppt

  5. MySql 打开日志文件

    -- 查看系统变量 show variables like '%general%'; set global general_log=on;

  6. Assembler : The Basics In Reversing

    Assembler : The Basics In Reversing Indeed: the basics!! This is all far from complete but covers ab ...

  7. 关于无法使用xx-pc附加到应用程序iisexpress.exe

    问题表现:1.本地调试F5不能调试 2.IIS调试 附加到进程 提示无法访问 解决方法: 用管理员身份在cmd中运行:netsh winsock reset,然后重启.

  8. mybatis实战教程(mybatis in action)之十:mybatis SqlSessionSupport 的使用,构件DAO 层的应用

    前面的系列mybatis 文章,已经基本讲到了mybatis的操作,但都是基于mapper隐射操作的,在mybatis 3中这个mapper 接口貌似充当了以前在ibatis 2中的 DAO 层的作用 ...

  9. mysql数据导出excel格式+乱码解决

    1:导出的SQL命令,只需要加上“FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' ” ...

  10. python---set集合

    集合(set)是一个无序不重复元素的序列. #!/usr/bin/python3 student = ({'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}) p ...