gpt4 book ai didi

Golang 包也必须可以独立于 cli 使用

转载 作者:数据小太阳 更新时间:2023-10-29 03:05:50 25 4
gpt4 key购买 nike

我想创建一个包,它有一个主要功能,并使用标志包来指定参数。

此外,我希望能够将此包包含在其他包中,并使用类似于在 cli 上传递 args 的语法来调用它的方法。可能是这样的

err := myPackage.setFlags(args ...string)
out, err := myPackage.exec()

我希望包含的包具有主要功能的一些原因是:

  • 它使我能够将包作为独立的可执行文件分发。我的用户可能不需要完整的系统

  • 它可以使手动故障排除变得更加容易

我应该将所有内容分开并使用 os\exec 吗?

我是否应该为每个包创建独立的包装器(也许可以生成这些包装器?)并直接从整个系统调用导出的函数而不执行 setFlags 操作?

是否有我可以遵循的良好设计模式来做到这一点?

还是我想出了一个反模式?

最佳答案

一个常见的模式是在您的项目中有一个包含可执行文件的 cmd pkg。

像这样

cmd/
foo/main.go
pkg/
foo/foo.go

cmd/foo 导入 pkg/foo 并处理命令行标志。 pkg/foo 是包含所有库代码的包。此模式允许其他人导入 pkg/foo 并且 cmd/foo 也为您提供一个名为 foo 的可执行文件。

关于Golang 包也必须可以独立于 cli 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39058288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com