是否有可能在运行时加载特定的包?我希望有一种插件,其中每个插件有相同的功能,但有不同的行为,并根据配置文件,加载一个或其他。
发布于 2014-07-08 20:50:28
您可以考虑在运行时执行“plugin”包,方法是写出一个新程序(例如,到临时目录)并通过exec.Command执行,类似于exec.Command("go", "run", files…).Run()。
您将看到一些类似的代码这里。
发布于 2014-07-08 20:44:56
不,Go不支持动态加载的库。
您最好的选择是将插件作为自己的可执行文件启动,并通过套接字或stdin/stdout与其进行通信。
2017年最新情况
这个答案不再正确,Go now支持插件 (直到2021年6月才支持Linux和MacOS )
发布于 2017-06-30 15:48:30
到目前为止,已经有人支持这一点了。
https://stackoverflow.com/questions/24641296
复制相似问题