在我学习Go的初期,尝试使用包github.com/jessevdk/go-flags
。我检查了另一个go-flags
线程中引用的Fly示例,但它显然没有使用AddCommand
(至少每个我的grep)。
godoc文章建议定义全局解析器实例并在单独的文件中实现每个命令。每个命令文件都应定义一个go init函数,该函数在全局解析器上调用AddCommand。
让我的解析器全局化非常简单。困惑于init()
设置:
1)我的理解是init()
订单执行是随机的,而不是你的main的init最后运行。
2)如果是这样,我无法确保在我的AddCommand()调用之前调用了我的配置代码中的NewParser()
调用。
3)我的代码编译,但是--help没有显示任何已定义的命令,让我觉得确实AddCommand()
在NewParser()
之前被调用了
/ *只是一个猜测* /
4)QED我很困惑!
有没有人有我可以学习的推荐例子?