我是靠谱客的博主 糊涂日记本,最近开发中收集的这篇文章主要介绍kingpin 包概述方法清单接收类型限制示例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

概述

  • 大体上与 flag 包相同, flag 包使用
  • 支持非标识符的传参

方法清单

  • 输出信息
    • kingpin.Version(): 输出版本信息
    • kingpin.FatalIfError(): 如果有报错, 打印错误信息, 并退出
    • kingpin.Fatalf(): 打印错误信息, 并退出
    • kingpin.Errorf(): 打印错误信息, 不退出
    • kingpin.FatalUsage(): 如果有报错, 打印帮助信息
    • kingpin.Usage(): 打印帮助信息
  • 创建参数
    • kingpin.Arg(): 创建固定参数(按顺序传入, 不需要 --flag 指定)
    • kingpin.Flag(): 创建可选参数
  • 解析参数
    • kingpin.Parse(): 用法同 flag
    • kingpin.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, 3h
  • kingpin.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 包概述方法清单接收类型限制示例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部