为了账号安全,请及时绑定邮箱和手机立即绑定

获取标志值失败

获取标志值失败

Go
慕容3067478 2023-07-10 09:26:25
我使用https://github.com/spf13/cobra库创建了一个小型 Go 应用程序。我创建了一个新标志-tor --token,当我传递这个参数时,我希望应用程序打印它。这就是我所做的:func init() {     fmt.Println("[*] Inside init()")         var token string     rootCmd.PersistentFlags().StringVarP(&token, "token", "t", "", "Service account Token (JWT) to insert")     fmt.Println(token) }但当我像这样运行应用程序时它不会打印它:.\consoleplay.exe --token "hello.token"如何打印标志的值。
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

您无法在init()函数中打印令牌的值,因为该init()函数在第一次调用包时在运行时执行。该值尚未分配。


因此,您必须全局声明该变量并在命令Run的方法中使用它rootCmd。


var token string


var rootCmd = &cobra.Command{

    Use:    "consoleplay",

    Run: func(cmd *cobra.Command, args []string) {

        fmt.Println(token)

    },

}


func init() {

    rootCmd.Flags().StringVarP(&token, "token", "t", "", "usage")

}


查看完整回答
反对 回复 2023-07-10
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号