golang 之 flag
2024-08-29 11:16:20
针对官网对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 // 得到传的参数
最新文章
- MySQL ROOT密码更改
- 报错注入分析之Extractvalue分析
- Python实现对文件夹内文本文件递归查找
- JSP中乱码问题
- Linux Futex的设计与实现(转)
- 【转】用CSS代码写出的各种形状图形的方法
- (转)Struts2返回JSON对象的方法总结
- codevs1009
- 【原创翻译】认识MVC设计模式:web应用开发的基础(实际编码篇)
- PHP header( ) 禁止页面后退
- 【Hololens】微软Hololens虚拟现实视频集
- PyQt4简单小demo
- P2520 [HAOI2011]向量
- js获取地址栏传参
- 计算机视觉学习记录 - Implementing a Neural Network from Scratch - An Introduction
- NBU显示备份成功,但实际是无备份成功
- mfcc的特征提取python 代码实现和解析
- request 的下载文件
- pyasn1 安装异常
- Spring_IOC&;DI概述
热门文章
- 高考数学答卷策略[K12论坛转载]
- ARC098F Donation
- mysql(一)工作原理 &; 数据库引擎
- [Beta]Scrum Meeting#7
- Django实现自动发布(1数据模型)
- docker port is already allocated 的解决方案
- Refused to execute script from '...' because its MIME type ('') is not executable, and strict MIME type checking is enabled.
- mybatis ResultHandler vs ResultSetHandler及自定义扩展
- Java一行代码
- Spark Streaming反压机制