如何在 cobra 中设置标志的默认值

问题描述 投票:0回答:1

有没有办法为眼镜蛇中的标志

(VarP)
定义默认值?

func (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *Flag {
    // Remember the default value as a string; it won't change.
    flag := &Flag{
        Name:      name,
        Shorthand: shorthand,
        Usage:     usage,
        Value:     value,
        DefValue:  value.String(),
    }
    f.AddFlag(flag)
    return flag
}

我在函数定义中找不到默认值。

go default go-cobra
1个回答
0
投票

有几种方法 - 目前还不清楚问题中尝试了什么。

  • 最简单的方法是使用数十种特定于类型的
    FlagSet
    辅助方法之一。例如,
    FlagSet.StringVarP
  • 如果您使用自定义逻辑来加载不能很好地工作的标志,则有
    FlagSet.AddFlag
    ,它需要
    Flag
    。该类型有一个默认值字段。
  • 然后就是您在问题中提到的,使用
    FlagSet.Var
    和相关方法,通过使用该接口实现自定义类型。
© www.soinside.com 2019 - 2024. All rights reserved.