返回顶部
首页 > 资讯 > 后端开发 > GO >Golang Cobra 多个标志没有值
  • 602
分享到

Golang Cobra 多个标志没有值

overflow 2024-02-06 05:02:24 602人浏览 独家记忆
摘要

问题内容 我是 golang 新手,正在使用 cobra 框架尝试我的第一个 cli 应用程序。 我的计划是使用很少的命令,使用很多标志。 这些标志不必附加值,因为它们可以简单地使用

问题内容

我是 golang 新手,正在使用 cobra 框架尝试我的第一个 cli 应用程序。

我的计划是使用很少的命令,使用很多标志。 这些标志不必附加值,因为它们可以简单地使用 -r 来重新启动设备。

目前,我有以下工作,但我一直在想,这不是正确的方法。 因此,我们非常感谢任何帮助。

当前的逻辑是,每个命令都会附加一个默认值,然后我在运行命令中查找该值,并在捕获它后触发我的函数。

我的“工作代码”如下所示。

我的init函数,在命令中包含以下内容。

chargercmd.flags().stringp("updatefirmware", "u", "", "updeates the firmware of the charger")
    chargercmd.flags().lookup("updatefirmware").nooptdefval = "yes"
    chargercmd.flags().stringp("reboot", "r", "", "reboots the charger")
    chargercmd.flags().lookup("reboot").nooptdefval = "yes"

运行部分如下所示。

Run: func(cmd *cobra.Command, args []string) {
        input, _ := cmd.Flags().GetString("UpdateFirmware")
        if input == "yes" {
            fmt.Println("Updating firmware")
            UpdateFirmware(os.Getenv("Test"), os.Getenv("Test2")) 
        }
        input, _ = cmd.Flags().GetString("reboot")
        if input == "yes" {
            fmt.Println("Rebooting Charger")
        }
    },


正确答案


也许为了让用法更清晰一些,正如 burak 的评论中所述 - 您可以更好地区分命令和标志。使用 cobra,您可以拥有 root 命令和附加到 root 命令的子命令。另外,每个命令都可以接受标志。

在您的情况下,charger 是根命令,您需要两个子命令:update_firmwarereboot

作为重新启动充电器的示例,您将执行命令:

$ charger reboot

在上面的代码中,您尝试将子命令定义为标志,这是可能的,但可能不是一个好的做法。

相反,该项目应该设置如下: https:// GitHub.com/hesamchobanlou/stackoverflow/tree/main/74934087

然后,您可以在 cmd/update_firmware.Go 下的相应命令定义中移动 updatefirmware(...) 操作,而不是尝试检查根 chargercmd 上的每个标志变体。

如果这没有帮助,请提供更多详细信息,说明为什么您认为您的方法可能不正确?

以上就是Golang Cobra 多个标志没有值的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Golang Cobra 多个标志没有值

本文链接: https://lsjlt.com/news/561211.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Golang Cobra 多个标志没有值
    问题内容 我是 golang 新手,正在使用 cobra 框架尝试我的第一个 cli 应用程序。 我的计划是使用很少的命令,使用很多标志。 这些标志不必附加值,因为它们可以简单地使用 ...
    99+
    2024-02-06
    overflow
  • Golang多个字段具有相同的json标签名称
    欢迎各位小伙伴来到编程网,相聚于此都是缘哈哈哈!今天我给大家带来《Golang多个字段具有相同的json标签名称》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都...
    99+
    2024-04-04
  • Golang 函数可以返回多个值吗?
    是的,go 函数可以通过返回一个元组来返回多个值,元组是一种不可变的值,可以包含不同类型的数据。 Go 函数可以返回多个值吗? Go 函数可以通过返回一个元组来返回多个值。元组是一种不...
    99+
    2024-04-13
    函数 返回值 golang
  • golang函数多个返回值的处理
    go 语言函数支持返回多个值,通过逗号分隔类型声明。使用 x, y := myfunction() 获取返回值。例如,calculaterectangle 函数返回面积和周长,可通过 a...
    99+
    2024-04-22
    函数 golang 多返回值
  • php怎么判断一个数组有没有值
    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑方法1:利用empty()函数empty() 函数用于检查一个变量是否为空。一个数组如果没有值,则该数组就是一个空数组。因此,只需要使用empty() 函数判...
    99+
    2024-04-02
  • idea怎么判断这个实现类有没有值
    有以下几种方法可以判断一个实现类是否有值:1. 使用if语句判断:可以通过判断实现类的实例是否为null来确定是否有值。例如:if(...
    99+
    2023-08-20
    idea
  • Golang 匿名函数可以返回多个值吗?
    是的,go 语言中的匿名函数可以返回多个值。语法:func(arg1, arg2, ..., argn) (ret1, ret2, ..., retm) { // 函数体 }。使用方法:...
    99+
    2024-04-13
    golang 匿名函数
  • 有没有一个适用于 Laravel 的 ASP IDE 日志工具?
    Laravel 是一个非常流行的 PHP 框架,它为开发人员提供了许多有用的功能和工具,以帮助他们更轻松地构建高效的 Web 应用程序。然而,当涉及到调试和排除故障时,开发人员可能会发现自己需要更多的工具和资源来帮助他们进行这些任务。在这篇...
    99+
    2023-10-14
    ide 日志 laravel
  • Golang标志的由来:是否真的与狗有关?
    Golang标志的由来:是否真的与狗有关? Golang,即Go语言,是一种由Google开发的开源编程语言,它的标志是一个可爱的蓝色长毛狗在一片蓝色草地上。许多人都好奇,Golang...
    99+
    2024-03-07
    golang 标志 go语言 标准库
  • 如何让每个 cobra 命令解析自己的标志?获取初始化循环(预期,但如何避免?)
    本篇文章给大家分享《如何让每个 cobra 命令解析自己的标志?获取初始化循环(预期,但如何避免?)》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这...
    99+
    2024-04-05
  • php函数返回值有多少个
    这篇文章主要介绍“php函数返回值有多少个”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php函数返回值有多少个”文章能帮助大家解决问题。php函数返回值只能有一个。在PHP中,函数返回值使用ret...
    99+
    2023-06-30
  • springboot 如何解决yml没有spring的小叶子标志问题
    目录如何解决yml没有spring小叶子标志yml文件没有小叶子的另一种原因application.yml识别为txt的问题如何解决yml没有spring小叶子标志 我的idea s...
    99+
    2024-04-02
  • springboot怎么解决yml没有spring的小叶子标志问题
    小编给大家分享一下springboot怎么解决yml没有spring的小叶子标志问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如何解决yml没有spring小...
    99+
    2023-06-29
  • html伪元素有多少个标签
    HTML伪元素是一种特殊的CSS选择器,用于在元素的内容之前或之后插入样式化的内容。它们不是真正的HTML标签,而是在CSS中使用的。HTML伪元素主要有以下几种:::before伪元素:在元素内容的前面插入样式化的内容。它通常用于在元素前...
    99+
    2023-10-21
    html 伪元素
  • HCL 解码:具有多个标签的块
    学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《HCL 解码:具有多个标签的块》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧...
    99+
    2024-04-04
  • go语言预定义标识符有多少个
    go语言预定义标识符有36个,主要包含了基础数据类型和内置函数,分别是:append、bool、byte、cap、close、complex、complex64、complex128、uint16、copy、FALSE、float32、fl...
    99+
    2023-05-14
    Golang go语言
  • Golang函数的函数参数和返回值中的多个引用
    Golang 是一种支持函数式编程的强类型静态语言,它的设计旨在提高程序运行的效率和易于开发、维护。在 Golang 中,函数的参数和返回值可以是多个,而这些参数和返回值可以是不同的类型,也可以是引用类型。本文将介绍 Golang 函数的函...
    99+
    2023-05-17
    Golang 引用 函数参数
  • php怎么判断数组里是否有多个值
    判断方法:1、用count()函数获取数组长度,语法“$len=count($arr);”;2、利用比较运算符“>”判断数组长度是否大于1,语法“$len>1”,如果长度大于1则数组中有多个值,反之则数组中有1个值或没有值。本教...
    99+
    2022-06-14
    php数组 php
  • php如何判断数组里是否有多个值
    这篇文章主要介绍了php如何判断数组里是否有多个值的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何判断数组里是否有多个值文章都会有所收获,下面我们一起来看看吧。判断方法:1、用count()函数获取数组...
    99+
    2023-06-30
  • 如何创建具有多个返回值的 PHP 函数
    PHP 函数是一个可重复使用的语句块,它使我们可以返回简单的字符串,数组或 JSON 对象。但是不可能有一个以上的返回值。尽管可以使用数组,但是可以创建条件语句以返回动态变量或使用生成器*(对于 PHP...
    99+
    2024-02-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作