登录
首页 >  Golang >  Go问答

如何将 pflag 与 Shortflag 一起使用?

来源:stackoverflow

时间:2024-04-11 16:18:23 363浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《如何将 pflag 与 Shortflag 一起使用?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我使用 pflag 来解析命令行参数,但是如何使用 shortflag 并设置必需参数或非必需参数?

package main

import (
    "fmt"
    "github.com/spf13/pflag"
    "os"
)

var (
    prometheus *string = pflag.String("p", "", "prometheus url")
    cluster    *string = pflag.String("c", "", "k8s cluster name")
    namespace  *string = pflag.String("n", "", "namespace")
    timeout *time.Duration = pflag.Duration("t", 30 * time.Second, "prometheus SQL timeout Duration")
)

func main(){
    pflag.Parse()
    if *cluster == "" {
        fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
        pflag.PrintDefaults()
        os.Exit(1)
    }
}

正确答案


要同时使用简写和长格式参数,请使用 p 变体:

pflag.stringp("longname","l","","desc")

据我所知,pflag 没有“必需”arg 的概念。您可以获取该标志并测试它是否已设置:

pflag.Lookup("name").Changed

今天关于《如何将 pflag 与 Shortflag 一起使用?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>