登录
首页 >  Golang >  Go问答

可以在 Go 中重复使用标志吗?

来源:stackoverflow

时间:2024-02-10 21:51:24 367浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《可以在 Go 中重复使用标志吗?》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我正在开发一个项目,我想知道是否有办法在 go 中运行命令时重用标志。

flag 应该是每个插件名称的可选参数,如下所示。

command plugin1 --version=1.0 plugin2 --version=1.2 plugin3 plugin4 --version=3.7

有办法实现这种行为吗?如果是这样,最好的做法是什么?


正确答案


您的基本问题是此类命令驱动的 cli 是分层构建的。例如,docker 容器 rmcontainerdocker 的子命令,rmcontainer 的子命令。如果您将其投射到您的用例中,您应该很快就会发现问题。在您的情况下, plugin1 将是 command 的子命令, plugin2plugin1 的子命令, plugin3plugin2 的子命令,依此类推。但是,我认为您希望直接将所有这些命令设为 command 的子命令。

因为您没有提供任何有关构建 cli 的详细信息,无论是标准库还是 cobra 之类的东西。因此,我无法在这里给出确切的实现细节,但您可以做的是选择一个更合适的插件特定标志,而不是通用名称 version。然后您可以直接将版本共享到此标志。

例如:

command --plugin1=1.0 --plugin2=1.2 --plugin3 --plugin4=3.7

问题当然是插件本身不再是命令,因此很难指定其他特定于插件的标志。这是否适合您的情况,只有您知道。

理论要掌握,实操不能落!以上关于《可以在 Go 中重复使用标志吗?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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