针对官网对flag 的定义解释一堆,对与我来说看了许久只想获取它的用法时,特意去整理一下。能快速使用并掌握它。

查看flag源码大致定义几下几种格式

//定义一个字符串的变量
type string string
func String(name string, value string, usage string) *string //定义一个int型变量
type int int
func Int(name string, value int, usage string) *int
//定义一个bool型变量
type bool bool
func Bool(name string, value bool, usage string) *bool func Float64(name string, value float64, usage string) *float64 func Int64(name string, value int64, usage string) *int64 //在所有的变量参数被设置后需要进行一次解析才生效
func Parse() //给指定的参数设置值
func Set(name, value string) error //Flag结构体
type Flag struct {
Name string // name as it appears on command line
Usage string // help message
Value Value // value as set
DefValue string // default value (as text); for usage message
}

 官网对其也有两种定义方式。

flag.Xxx()

Xxx 可以是 Int、String,Bool 等;返回一个相应类型的指针,如:
var ip = flag.Int("flagname", 1234, "help message for flagname")结果返回指针类型

  • 第一个参数 :flag名称为flagname
  • 第二个参数 :flagname默认值为1234
  • 第三个参数 :flagname的提示信息

flag.XxxVar()

var flagValue int
flag.IntVar(&flagValue, "flagname", 1234, "help message for flagname")
  •  第一个参数 :接收flagname的实际值的
  • 第二个参数 :flag名称为flagname
  • 第三个参数 :flagname默认值为1234
  • 第四个参数 :flagname的提示信息

这种方式获取ip的值fmt.Println(ip)

当然也可以自定义取值,不过个人觉得提供的已经够用,想详细了解的童鞋可自行查看官网及源码。这里就不过多叙述

取值

定一个test.go文件

package main

import (
"flag"
"fmt"
) //定义一个字符串变量,并制定默认值以及使用方式
var name = flag.String("name", "wang", "姓名") //定义一个int型字符
var nums = flag.Int("ins", 1, "ins nums") func main() {
// 上面定义了两个简单的参数,在所有参数定义生效前,需要使用flag.Parse()来解析参数
flag.Parse()
// 测试上面定义的函数
fmt.Println("a string flag:",string(*name))
fmt.Println("ins num:",rune(*nums))
}

 运行的时候需要注意的是如果不传参数就会取出默认值,传参就会得到传的值

go run test.go  // 取出默认值
go run test.go -ins 3 -name biaoge // 得到传的参数

  

最新文章

  1. MySQL ROOT密码更改
  2. 报错注入分析之Extractvalue分析
  3. Python实现对文件夹内文本文件递归查找
  4. JSP中乱码问题
  5. Linux Futex的设计与实现(转)
  6. 【转】用CSS代码写出的各种形状图形的方法
  7. (转)Struts2返回JSON对象的方法总结
  8. codevs1009
  9. 【原创翻译】认识MVC设计模式:web应用开发的基础(实际编码篇)
  10. PHP header( ) 禁止页面后退
  11. 【Hololens】微软Hololens虚拟现实视频集
  12. PyQt4简单小demo
  13. P2520 [HAOI2011]向量
  14. js获取地址栏传参
  15. 计算机视觉学习记录 - Implementing a Neural Network from Scratch - An Introduction
  16. NBU显示备份成功,但实际是无备份成功
  17. mfcc的特征提取python 代码实现和解析
  18. request 的下载文件
  19. pyasn1 安装异常
  20. Spring_IOC&DI概述

热门文章

  1. 高考数学答卷策略[K12论坛转载]
  2. ARC098F Donation
  3. mysql(一)工作原理 & 数据库引擎
  4. [Beta]Scrum Meeting#7
  5. Django实现自动发布(1数据模型)
  6. docker port is already allocated 的解决方案
  7. Refused to execute script from '...' because its MIME type ('') is not executable, and strict MIME type checking is enabled.
  8. mybatis ResultHandler vs ResultSetHandler及自定义扩展
  9. Java一行代码
  10. Spark Streaming反压机制