Go对我来说很新,而且我很努力地只在存在的情况下导入一个包。有没有办法做到这一点?我在包名之前用“_”尝试,但如果包不存在,程序将不会编译。我意识到我可能走错了路,但我还应该如何处理这种情况,在这种情况下,只有在存在包的情况下才想导入包?有条件的进口golang
回答
这是Go不可能的。作为一种静态编译语言,如果所有的依赖关系都存在,你只能编译一个二进制文件。 你能给我们一些关于为什么你需要这个的更多细节?也许有一种更简单或更习惯的方式来实现你的想法。
我想建立一个“迷你cms”,其中我想包括用户,日志记录和处理程序与他们等基本模型等。当在另一个应用程序中导入此“cms”时,我希望能够添加到这些模型和处理程序。所以我所做的尝试是从应用程序中导入“mini-cms”某个包,但前提是应用程序存在。我已经强烈怀疑这种方法可行,但我试图找出它应该如何工作 – rocoder
我给你的建议是 - 用抽象(界面)设计你的Go包(库)。因此,设计你的函数和方法来接受简单的接口(最好只有一个或两个方法)并返回接口或结构体。这样,当应用程序导入包时,它将能够使用接口的自定义实现(例如用于日志记录,跟踪或度量等)。库需要与应用程序无关,例如,如果构建对象期望一个'Logger'接口,应用程序没有提供一个 - 使用NoOp记录器。 –
- 1. SSIS有条件进口
- 2. Java条件进口
- 3. Yii进口条件
- 4. Golang进口配套包
- 5. Golang相关包装进口
- 6. 春3.1 PropertySourcesPlaceholderConfigurer和有条件进口
- 7. Golang条件编译
- 8. Golang进口;去获取mywebsite.com/mylibrary/function
- 9. Golang通过包进口分组
- 10. Golang进口路径最佳实践
- 11. 没有条件的{..block ..}的golang会有什么作用?
- 12. Powershell的进口CSV条件为
- 13. golang:在接口
- 14. golang中的条件变量声明?
- 15. golang中的条件聚合查询
- 16. 类从条件编译进口不可
- 17. Heroku上的Golang二进制文件
- 18. Golang接口结构
- 19. 转储的接口在golang
- 20. Golang接口的好处
- 21. 有条件的接口实现
- 22. 有条件的窗口函数sql
- 23. 检票口:有条件的验证器
- 24. protobuf的golang进口.proto和.pb.proto在不同的目录
- 25. 窗口移动进度条
- 26. golang动态进度
- 27. 有条件的十进制格式
- 28. 复制带有进度条的文件
- 29. 是否有进度条的jQuery插件
- 30. 有条件的C#二进制序列
我确实发现了一个解决方案,将所有这些资源保留在数据库中,而不是导入它们。 – rocoder
这听起来不像一个惯用的Go应用程序...... Go支持插件,可以在运行时导入,但我不确定这是否是您需要的。 –