
php小编香蕉在这里向大家介绍一个使用go语言中的urfave/cli库,将BoolFlags合并为一个的方法。urfave/cli是一个强大的命令行库,可以帮助我们创建优雅的命令行应用程序。在命令行应用程序中,我们经常需要处理各种BoolFlags(布尔标志),它们用于表示某些开关或选项是否启用。但是当BoolFlags很多时,代码会变得冗长且难以维护。使用urfave/cli,我们可以轻松地将多个BoolFlags合并为一个,使代码更加简洁和易于理解。接下来,让我们一起来看看具体的实现方法。
我有一个代码可以获取 -f/--foo 或 -b/--bar 的参数。参数解析是通过 urfave/cli 包完成的,这是第二个最流行的 go 参数解析器。我可以像 go run 一样运行我的程序。 -f -b 但不像 go run 。 -fb
有没有办法让它与 go run 一起工作。 -fb 使用 urfave/cli?
如果不可能,什么 go 模块可以使之成为可能?
代码:
package main
import (
"fmt"
"log"
"os"
"github.com/urfave/cli/v2"
)
func main() {
var foo_count, bar_count bool
app := &cli.app{
flags: []cli.flag{
&cli.boolflag{
name: "foo",
usage: "foo",
aliases: []string{"f"},
destination: &foo_count,
},
&cli.boolflag{
name: "bar",
usage: "bar",
aliases: []string{"b"},
destination: &bar_count,
},
},
action: func(cctx *cli.context) error {
fmt.println("foo_count", foo_count)
fmt.println("bar_count", bar_count)
return nil
},
}
if err := app.run(os.args); err != nil {
log.fatal(err)
}
}
测试
SeoShop网店系统全站纯静态html生成更符合搜索引擎优化,并修改了以前许多js代码,取消了连接地址的js代码更换为纯div+css格式,并且所有文件可自定义url和文件名,自定义内部连接,自定义外部连接,等多个符合SEO搜索引擎优化的设置,让您的网店更容易让搜索引擎收录. 简单易用 极速网店真正做到以人为本、以用户体验为中心,能使您快速搭建网上购物网站。后台管理操作简单,一目了然,没有夹杂多
0
$ go run . -f foo_count true bar_count false $ go run . -b foo_count false bar_count true $ go run . -bf Incorrect Usage: flag provided but not defined: -bf NAME: main - A new cli application USAGE: main [global options] command [command options] [arguments...] COMMANDS: help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --foo, -f Foo (default: false) --bar, -b Bar (default: false) --help, -h show help 2023/03/25 15:54:00 flag provided but not defined: -bf exit status 1
这个问题在一个包示例中得到了具体解决。创建 cli 时添加 UseShortOptionHandling: true。
https://github .com/urfave/cli/blob/main/docs/v2/examples/combining-short-options.md
来自文档:
这可以使用应用程序配置中的 UseShortOptionHandling bool 来完成,或者通过将其附加到命令配置来完成单个命令。
以上就是使用 go 中的 urfave/cli 将 `BoolFlags` 合并为一个的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号