go - 像golang中的java一样动态包加载

标签 go

如何动态导入包并像java反射包一样在golang中调用它的方法,有如何使用golang反射在同一个文件中调用方法的解决方案但是从不同的包调用呢

最佳答案

你所描述的不是动态包加载,它只是反射。只要包包含在二进制文件中并且导出了类型,您就可以像引用同一包中的类型一样引用它。

动态包加载完全是另一回事;有新的插件支持,仍处于早期阶段,尚未在所有平台上得到支持。这是最接近的。

请记住,Go 不是 Java。不要试图用 Go 编写 Java。它不会工作。两者之间的平台、语言和标准库非常、非常、非常不同。 Java 可以进行动态类加载因为它有一个类加载器。所有类型都在 Java 中动态加载。在 Go 中,没有是动态加载的; Go 编译器生成 native 二进制文件,它没有任何动态。

如果您试图复制您在 Java 中习惯的东西,您可能最好以更适合您选择的技术 (Go) 的方式重新思考您的设计,或者选择一种更适合您要解决的问题的技术。

关于go - 像golang中的java一样动态包加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48160212/

相关文章:

pointers - 我应该用指向结构的指针还是只在结构上定义我的函数?

go - 使用递归函数迭代递归结构

file - 打开文件并在另一个函数中创建 NewReader 后如何关闭文件?

Golang - 我可以有一个带有 slice 成员的结构吗?

c - 强制定义 Go 结构以将 unsafe.Pointer() 转换为 C 结构

Golang Scan 不扫描下一行

string - 如何让 golang 测试多行输出匹配

go - 从 bufio 中读取文件,通过文件进行半复杂排序

java - 如何在 Go 中使用/实现切面方向?

go - 如何获取整数常量的字节?