1

在我学习 Go 并尝试使用 package 的早期阶段github.com/jessevdk/go-flags。我检查了另一个线程中引用的 Fly 示例go-flags,但它显然没有使用AddCommand(至少根据我的 grep)。

godoc 文章建议定义一个全局解析器实例,并在单独的文件中实现每个命令。这些命令文件中的每一个都应该定义一个 go init 函数,该函数在全局解析器上调用 AddCommand。

使我的解析器全球化很容易。对init()设置感到困惑:

1)我的理解是init()订单执行是随机的,除了你的 main 的 init 最后运行。

2) 如果是这样,我无法确保NewParser()在我的 AddCommand() 调用之前调用了我的配置代码中的调用。

3) 我的代码可以编译,但是 --help 没有显示任何已定义的命令,这让我认为确实,在 /* 只是猜测 */AddCommand()之前调用了NewParser()

4) QED 我很困惑!

有人有推荐的例子我可以学习吗?

4

0 回答 0