
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)
}
}
测试
beta v1.1版本为第一个版本,简单的整合了基础功能,各位站长拿到程序后,不要纠结后台的功能简单,后续将不断更新扩展。在beta v1.1版本使用过程中遇到什么问题,请登录 www.loftto.com 进行反馈! 安装说明######重要提醒:程序不支持二级目录安装,请使用一级目录或二级目录绑定!#第一步,确定你的服务器支持PHP+mysql。#第二步,确定你的服务器开启了gd库。#第三步,
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号