flag 是 Golang 的官方包。

支持用法有三种,不同之处是二三两种用法是 Var() 函数可以绑定 flag 到一个变量上。

直接调用指定类型的函数有多种,如 flag.String(), Bool(), Int() 等等。

import "flag"
var nFlag = flag.Int("n", 1234, "help message for flag n")
var flagvar int
func init() {
flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
}
flag.Var(&flagVal, "name", "help message for flagname")

定义了 flag 之后,调用 flag.Parse() 解析命令行到定义的flag中。

随后它们可以直接使用,直接使用时,它们都是指针类型。如果绑定到变量,它们是值。

fmt.Println("ip has value ", *ip)
fmt.Println("flagvar has value ", flagvar)

同样,Parse之后,flag.Args() 或者 flag.Arg(i) 也都可用。参数索引从 0 ~ flag.NArg()-1

命令行的三种语法:

  -flag

  -flag=x

  -flag x

  最后一种只针对 非bool型的 flag 值。

原版详细的注释建议在 IDE 中直接跳转到 flag.go 查看源码上方内容。

Refer:golang flag package

Link:https://www.cnblogs.com/farwish/p/15664459.html

[Go] flag package 指南: 命令行参数标记的解析的更多相关文章

  1. [Go] gocron源码阅读-flag包实现命令行参数获取

    调用flag包可以方便的获取到命令行中传递的参数,比如可以实现类似nginx执行程序获取命令行参数执行不同操作的目标 package main import ( "flag" &q ...

  2. Qt之命令行参数

    简述 在Qt之进程间通信(QProcess)一节,我们讲解了如何通过QProcess来进行进程间的通信.主要通过启动外部程序,然后通过命令行的方式传递参数. 这里,我们可以通过Qt Creator来设 ...

  3. UE4命令行参数解析

    转自:https://blog.csdn.net/u012999985/article/details/53544389 一 .命令行参数简述命令行参数是一连串的关键字字符串,当运行可执行文件时可以通 ...

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

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

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

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

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

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

  7. gol处理命令行参数 flag

    os.Args获取命令行参数 os.Args是一个srting的切片,用来存储所有的命令行参数 package main import ( "fmt" "os" ...

  8. Go使用flag包开发命令行工具

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

  9. golang命令行参数

    os.Args获取命令行参数 os.Args是一个srting的切片,用来存储所有的命令行参数 package main import ( "fmt" "os" ...

  10. 让browserify接收命令行参数,在打包时parse yml配置文件

    功能需求: 1用browserify把各种js打包成浏览器端的1个bundle.js,含有yml配置文件 约束: 1 yml配置文件不在当前工程里(现在还不知道放哪里,以后也会变),希望在打包时,用命 ...

随机推荐

  1. 08.Java反射问题

    目录介绍 8.0.0.1 反射的原理是什么?有哪些途径获取到Class对象,Class类的含义和作用是什么?什么是class类? 8.0.0.2 有哪些方式可以提高反射效率?为何反射消耗性能?究竟是怎 ...

  2. 崩溃bug日志总结2

    目录介绍 1.1 java.lang.ClassNotFoundException类找不到异常 1.2 java.util.concurrent.TimeoutException连接超时崩溃 1.3 ...

  3. 记录--7个Js async/await高级用法

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 7个Js async/await高级用法 JavaScript的异步编程已经从回调(Callback)演进到Promise,再到如今广泛使 ...

  4. 工作记录:TypeScript从入门到项目实战(基础篇)

    前言 TypeScript是什么? 引用官方原话 TypeScript是JavaScript类型的超集,它可以编译成纯JavaScript.TypeScript可以在任何浏览器.任何计算机和任何操作系 ...

  5. TorchV的RAG实践分享(二):基于ElasticSearch的混合检索实战&原理分析

    概述 在昨天员外分享的<TorchV的RAG实践分享(1)--RAG的定位.技术选型和RAG技术文章目录>一文中介绍了TorchV的由来,也分享了我们的几个基线产品和应用架构的方向,我们想 ...

  6. python批量发邮箱

    1.首先登录邮箱中开启服务 2.获取到授权码后复制下来,放入如下含授权码的引号中: 1 smtp_obj.login("**********@qq.com", "授权码& ...

  7. IPython刷新函数模块

    技术背景 IPython是一个非常灵活好用的python终端工具,而且比Python自带的终端工具还多了命令行高亮和自动索引的功能,也是常用的Jupyter Notebook的基础工具.在使用IPyt ...

  8. Oracle PL/SQL 中的 CHAR 和 VARCHAR2 比较

    https://docs.oracle.com/cd/B14117_01/appdev.101/b10807/b_char.htm SQL 标准要求被比较的两个字符值具有相等的长度.如果比较中的两个值 ...

  9. jQuery AJAX 常见属性

    1 jQuery.ajax(...) 2 部分参数: 3 url:请求地址 4 type:请求方式,GET.POST(1.9.0之后用method) 5 headers:请求头 6 data:要发送的 ...

  10. 关于商业智能(Business Intelligence,简称BI)的认识

    一.早期(1958年)定义 商业智能描述了一系列的概念和方法,通过应用基于事实的支持系统来辅助商业决策的制定. 二.帆软数据调研 帆软数据应用研究院对770多家企业的1400多名从业人员进行了调研(云 ...