我正在构建一个CLI工具来开始学习一些Go。我发现这种流行的包,我想使用一些像这样的命令:了解带标志的子命令
http://godoc.org/github.com/jessevdk/go-flags#Group
https://github.com/jessevdk/go-flags
ex list todos
ex list todos --completed
ex list events
ex list todos events
ex authenticate
我的理解是ex
将是我的主要命令的方式。
list
和authenticate
是子命令。
但什么是在这种情况下todos
和events
?那么--completed
会是什么。是--completed
叫做Option
?这是我看到的神秘人,但不知道我是否正确阅读。我试图找到一个具有不同选项的示例,例如此场景,但我找不到一个。我尝试使用urfave/cli,它首先运行良好,直到我找到一个要求能够将多个实体传递到ex list
,如ex list todos events
。提前致谢!
在50行的fly.go底部,有'var Fly FlyCommand'。为什么这需要?如果没有第50行的声明,你能不能引用另一个包中的FlyCommand? – Crystal
是的,那就是创建一个'FlyCommand'结构的实例,以便它可以填充值。你会在'main()'函数中看到该变量的地址被传递给'NewParser()'中的解析器。然后,当调用Parse()时,go-flags通过命令/选项结构填充适当的字段。 – Corbin