概述
- 大体上与
flag包相同, flag 包使用 - 支持非标识符的传参
方法清单
- 输出信息
kingpin.Version(): 输出版本信息kingpin.FatalIfError(): 如果有报错, 打印错误信息, 并退出kingpin.Fatalf(): 打印错误信息, 并退出kingpin.Errorf(): 打印错误信息, 不退出kingpin.FatalUsage(): 如果有报错, 打印帮助信息kingpin.Usage(): 打印帮助信息
- 创建参数
kingpin.Arg(): 创建固定参数(按顺序传入, 不需要 --flag 指定)kingpin.Flag(): 创建可选参数
- 解析参数
kingpin.Parse(): 用法同flagkingpin.MustParse():Parse()底层调用的它
- 其他:
kingpin.New()kingpin.ExpandArgsFromFile()kingpin.UsageTemplate()kingpin.Command()kingpin.HelpFlag.Short('h'): 启动 -h
接收类型
- 按接收方式分(以
string类型为例)kingpin.Flag().String(): 直接指针接收kingpin.Flag().StringVar(): 先创建变量, 用该变量指针接收
- 按类型分(不同类型有不同的方法, 以
string为例)kingpin.Flag().String()kingpin.Flag().Strings(): 以[]string接收, 接收值为多个时, 必选参数只能有一个, 否则无法区分kingpin.Flag().StringMap(): 以map[string]string类型接收- 其他类型可能没有 map, 如
Bool()和BoolList()
限制
kingpin.Flag().Required().String(): 必传kingpin.Flag().IP(): ip 格式kingpin.Flag().Duration(): 时间格式,10s,2m,3hkingpin.Flag().Short(): 设置短参数kingpin.Flag().Default(): 设置默认值kinpin.Flag().Envar(): 使用环境变量
示例
package main
import (
"fmt"
"gopkg.in/alecthomas/kingpin.v2"
)
func main() {
// 必须为 IP 格式
ip := kingpin.Flag("ip", "IP addr").IP()
// 必传
pwd := kingpin.Flag("pwd", "Password").Required().String()
// Int 类型
hostID := kingpin.Flag("hostID", "HostID").Int()
// time
time := kingpin.Flag("time", "Time").Duration()
// 解析
kingpin.Parse()
fmt.Println(*ip, *pwd, *hostID, *time)
}
最后
以上就是糊涂日记本最近收集整理的关于kingpin 包概述方法清单接收类型限制示例的全部内容,更多相关kingpin内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复