flag--命令行参数解析之StringVar
func StringVar
func StringVar(p *string, name string, value string, usage string)
StringVar定义了一个有指定名字,默认值,和用法说明的string标签。 参数p指向一个存储标签解析值的string变量。
通俗来说,在命令行输入命令,后面可以带上 -xxx xx 这样的参数。
通过下面例子来理解:
// TestFlag project main.go
package main import (
"flag"
"fmt"
"os"
) func main() {
//定义变量args,用来存放指定参数名的参数内容
var args string //StringVar定义了一个有指定名字,默认值,和用法说明的string标签。参数p指向一个存储标签解析值的string变量。
//Args 指定参数名 应用的时候 在命令行输入 -Args xxx
//defaultValue 如果没有指定Args的值,那么Args的内容默认是"defaultValue"
//Usage 用法说明字符串
flag.StringVar(&args, "Args", "defaultValue", "Usage:xxx")
//解析上面定义的标签
flag.Parse() fmt.Println("Args1:", flag.Arg(0))
fmt.Println("Args2:", flag.Arg(1))
fmt.Println("Args3:", flag.Arg(2))
fmt.Println("String args:", args)
fmt.Println("os.Args[0]:", os.Args[0])
fmt.Println("os.Args[1]:", os.Args[1])
fmt.Println("os.Args[2]:", os.Args[2])
}
- 编译后,在命令行执行下面命令:
Testflag -Args a 输出结果如下:
Args1:
Args2:
Args3:
String args: a
os.Args[]: Testflag
os.Args[]: -Args
os.Args[]: a
- 然后,再看看调换参数位置后的输出结果
Testflag 111 222 333 -Args a 结果如下:
Args1: 111
Args2: 222
Args3: 333
String args: defaultValue
os.Args[0]: Testflag
os.Args[1]: 111
os.Args[2]: 222
-Args 放在后面,为什么没有被正确解析出来? 这是因为解析到非FLag变量就停止解析Flag参数了。所以,flag参数应该放在普通参数的前面指定。
- 如果不指定 -Args参数,那么这个参数默认值就是defaultValue
Testflag 111 222 333 结果如下:
Args1: 111
Args2: 222
Args3: 333
String args: defaultValue
os.Args[0]: Testflag
os.Args[1]: 111
os.Args[2]: 222
flag--命令行参数解析之StringVar的更多相关文章
- golang-flag - 命令行参数解析
flag - 命令行参数解析 在写命令行程序(工具.server)时,对命令参数进行解析是常见的需求.各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用.如果命令行参数纯粹自己写代码解析, ...
- [Go] 命令行参数解析包(flag 包)使用详解
Go 的 flag 包可以解析命令行的参数. 一.命令行语法 命令行语法主要有以下几种形式: cmd -flag // 只支持bool类型 cmd -flag=xxx cmd -flag ...
- python命令行参数解析模块argparse和docopt
http://blog.csdn.net/pipisorry/article/details/53046471 还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的o ...
- gflags命令行参数解析
gflags库是google开源的命令行参数解析工具. 安装 官方没有提供二进制库,但是Debian/Ubuntu平台本身提供了二进制库,可以直接git clone https://github.co ...
- $命令行参数解析模块argparse的用法
argparse是python内置的命令行参数解析模块,可以用来为程序配置功能丰富的命令行参数,方便使用,本文总结一下其基本用法. 测试脚本 把以下脚本存在argtest.py文件中: # codin ...
- Google开源命令行参数解析库gflags
Google开源命令行参数解析库gflags http://blog.csdn.net/lming_08/article/details/25072899 CMDLINE的解析 http://blog ...
- PHP 命令行参数解析工具类
<?php/** * 命令行参数解析工具类 * @author guolinchao * @email luoyecb@163.com */class CommandLine{ // store ...
- Python命令行参数解析模块getopt使用实例
Python命令行参数解析模块getopt使用实例 这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参 ...
- python命令行参数解析OptionParser类用法实例
python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下: from opt ...
- Python 中命令行参数解析工具 docopt 安装和应用
什么是 docopt? 1.docopt 是一种 Python 编写的命令行执行脚本的交互语言. 它是一种语言! 它是一种语言! 它是一种语言! 2.使用这种语言可以在自己的脚本中,添加一些规则限制. ...
随机推荐
- HTMLParser使用
htmlparser[1] 是一个纯的java写的html(标准通用标记语言下的一个应用)解析的库,它不依赖于其它的java库文件,主要用于改造或提取html.它能超高速解析html,而且不会出错.现 ...
- javascript——Array
# js数组分为属性和方法 ## 属性 1.constructor返回对创建此对象的数组函数的引用. 这个其实在javascript中的对象都有 var a = [] console.log(a.co ...
- linux的零碎使用
一.Linux(rehat.centos.ubuntu...)基础知识 上午: putty软件连接linux服务器: [root @ foundation2 ~ ] # 用户名 ...
- JMeter Http测试计划
一.新建Http测试计划 二.添加线程组 设定5个线程,循环2次 三.添加Http请求 以百度为例: 四.添加监听:察看结果树 五.执行测试 5个用户,循环2次,共发了10个请求.
- Web 前端开发学习之路(入门篇)
字数1374 阅读4622 评论0 喜欢49 以前学习过一段时间的web前端开发,整理了一些我看过的/我认为比较好的学习资料(网站.书籍).不要问我为啥没有进阶版,我只是一条产品汪而已,求轻喷.== ...
- Maven国内下载站点
鉴于一些原因,从maven中央仓库download依赖包时,被各种折磨,下面就简单看下maven setting.xml的一些简单配置 先贴几个国内可用的maven repository连接: htt ...
- 逐行读取txt文件,使用Linq与StreamReader的Readline方法
List<string[]> list = File.ReadLines("YourFile.txt") .Select(r => r.TrimEnd('#')) ...
- 【学】AngularJS日记(4)- 过滤器的使用
过滤器: 过滤器中的 |json,可以使原来的json数据输出时按照换行的样式 过滤器 | limitTo:2可以截取字符串或者数组的前2位 过滤器| orderBy 可以进行排序,加入json里的k ...
- es6 class
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- shape--用代码修改shape的颜色属性
Android里面经常会使用shape来定制一些View的背景,可以修改View的背景颜色,形状等属性 一般情况下,shape都是在xml文件里面写死了,今天遇到一个需求,View的形状是圆角的,但是 ...