GO语言标准库—命令行参数解析FLAG
flag包是Go语言标准库提供用来解析命令行参数的包,使得开发命令行工具更为简单
常用方法
1.flag.Usage
输出使用方法,如linux下ls -h的帮助输出
2.flag.Type(参数名, 默认值, 使用提示)
Type为类型 如String, Int, Uint 调用相应的flag.Sring flag.Int flag.Uint方法
方法返回相应类型的指针
3.flag.TypeVar(指针, 参数名, 默认值, 使用提示)
与flag.Type方法基本相同,不同的是多一个指针参数,将使用传入的指针,不会再创建指针返回
4.flag.Args
返回解析完命令行参数后的其他参数,如./sh -name cqh a1 a2,将返回a1 a2
5.flag.Parse
执行解析
package main
import (
"flag"
"fmt"
)
func main() {
namePtr := flag.String("name", "username", "姓名")
agePtr := flag.Int("age", 18, "年龄")
musclePtr := flag.Bool("muscle", true, "是否有肌肉")
var email string
flag.StringVar(&email, "email", "aguncn@163.com", "邮箱")
flag.Parse()
args := flag.Args()
fmt.Println("name", *namePtr)
fmt.Println("age", *agePtr)
fmt.Println("muscle", *musclePtr)
fmt.Println("email", email)
fmt.Println("args", args)
}

GO语言标准库—命令行参数解析FLAG的更多相关文章
- Go命令行参数解析flag包
go语言提供的flag包可以解析命令行的参数,代码: package main import ( "flag" "fmt" ) func main() { // ...
- [Go] 命令行参数解析包(flag 包)使用详解
Go 的 flag 包可以解析命令行的参数. 一.命令行语法 命令行语法主要有以下几种形式: cmd -flag // 只支持bool类型 cmd -flag=xxx cmd -flag ...
- Google开源命令行参数解析库gflags
Google开源命令行参数解析库gflags http://blog.csdn.net/lming_08/article/details/25072899 CMDLINE的解析 http://blog ...
- golang-flag - 命令行参数解析
flag - 命令行参数解析 在写命令行程序(工具.server)时,对命令参数进行解析是常见的需求.各种语言一般都会提供解析命令行参数的方法或库,以方便程序员使用.如果命令行参数纯粹自己写代码解析, ...
- 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 ...
- PHP 命令行参数解析工具类
<?php/** * 命令行参数解析工具类 * @author guolinchao * @email luoyecb@163.com */class CommandLine{ // store ...
- Python命令行参数解析模块getopt使用实例
Python命令行参数解析模块getopt使用实例 这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参 ...
随机推荐
- PTA L1题目合集(更新至2019.3)
L1-001 Hello World (5 分) 链接:https://pintia.cn/problem-sets/994805046380707840/problems/9948051471320 ...
- Yarn vs npm: 你需要知道的一切
Yarn 是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具.就像我们可以从官方文档了解那样,它的目的是解决这些团队使用 npm ...
- MVC 中Delete 方法报错问题解决方案
最开始前台ajax提交时代码 function Del(id) { $.ajax({ type: "GET", url: "/Test/Delete", dat ...
- 用UDP实现聊天功能
// SK003Dlg.cpp : implementation file // #include "stdafx.h" #include "SK003.h" ...
- python中input和raw_input函数
python input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入. raw_input() 将所有输入作为字符串看待,返回字符串类型.而 input() 在 ...
- C# List 作为参数传递的值变化
一.示例演示 namespace TestConsole { class Program { static void Main(string[] args) { Console.WriteLine(& ...
- hibernate框架学习之数据查询(HQL)helloworld
package cn.itcast.h3.hql; import java.util.List; import org.hibernate.Query; import org.hibernate.Se ...
- IDEA中Git更新合并代码后,本地修改丢失
IDEA中,使用Git下载了远程服务器的代码,发现自己修改的代码不在了,此时并没有提交,所以在show history中查看不到,慌死了. 因为有冲突的地方,没有办法合并,所以直接使用了远程的代码 无 ...
- Android跳转WIFI界面的四种方式
第一种 Intent intent = new Intent(); intent.setAction("android.net.wifi.PICK_WIFI_NETWORK"); ...
- 分享一份非常强势的Android面试题
马上步入金九银十了,是时候看一些面试题去鹅厂了,接下来我将分享一些面试题,每天总结一点点,希望对大家有所帮助! ListView和RecyclerView区别 参考链接: https://blog.c ...