1

我正在使用 Go 开发一个基于 Cobra 的应用程序,对于我的一个命令,我正在定义一个这样的标志:

func init() {
    myCmd.Flags().StringVarP(&project, "project", "p", "defaultProject", "Project name")
}

我还在我的根命令中设置了一个 Viper,它从文件中读取一些配置。有没有办法用 Viper 设置标志的默认值?我试过这个:

func init() {
    myCmd.Flags().StringVarP(&project, "project", "p", viper.GetString("project"), "Project name")
}

但似乎这不是方法,因为如果我在调用命令时省略标志,我会得到一个空字符串。有任何想法吗?提前致谢!

4

0 回答 0