【golang学习笔记】flag包的简单使用,命令行解析

flag包实现了命令行参数的解析

本文只是简单入门,详细请看官方文档

func String

func String(name string, value string, usage string) *string
String用指定的名称、默认值、使用信息注册一个string类型flag。返回一个保存了该flag的值的指针。

package main

import (
   "flag"
   "fmt"
)

//第一个参数为name 第二个参数为默认值 第三个参数是描述
//需要注意的是接受的变量是一个指针
var mode = flag.String("mode", "", "process mode")

func main() {

   //进行解析
   flag.Parse()

   //输出
   fmt.Println(*mode)
}

在执行时使用 --name=value进行传递

命令行flag语法:

-flag
-flag=x
-flag x  // 只有非bool类型的flag可以 bool类型使用=赋值

一个-和两个-是一样的

例如:

go run main.go --mode=hello

func StringVar

func StringVar(p *string, name string, value string, usage string)
StringVar用指定的名称、默认值、使用信息注册一个string类型flag,并将flag的值保存到p指向的变量。

代码:

package main

import (
  "flag"
  "fmt"
)

func main() {

  var str string

  fmt.Println("开始解析")

  flag.StringVar(&str, "str", "", "parse string")

  //解析参数
  flag.Parse()
  //输出
  fmt.Println(str)

命令行输入:

 go run test1.go -str="hello go"

结果:

开始解析
hello go

flag包支持的命令行参数类型有bool、int、int64、uint、uint64、float float64、string、duration。

flag参数有效值
字符串flag合法字符串
整数flag1234、0664、0x1234等类型,也可以是负数。
浮点数flag合法浮点数
bool类型flag1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False。
时间段flag任何合法的时间段字符串。如”300ms”、”-1.5h”、”2h45m”。
合法的单位有”ns”、”us” /“µs”、”ms”、”s”、”m”、”h”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vivien_o.O

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值