【问题标题】:Activator.CreateInstance() analogue in GolangGolang 中的 Activator.CreateInstance() 类似物
【发布时间】:2025-11-23 08:55:01
【问题描述】:

C# 中,Activator 类有一个方法 CreateInstance,它允许您创建反射类型的实例,如 here 所示。

有没有办法在 Go 编程语言中做同样的事情?我想通过类型的名称从插件(Linux 上的 .so 或 Windows 上的 .dll)中获取一个类型,并在我的代码。我该怎么做?

【问题讨论】:

标签: go plugins reflection


【解决方案1】:

有没有办法在 Go 编程语言中做同样的事情?

没有。

我想通过类型名称从插件(Linux 上的 .so 或 Windows 上的 .dll)中获取一个类型,并在我的代码中创建此类型的实例。我该怎么做?

你不能。对不起。你必须重新设计。 Go 不是 C# 并且有不同的规则。一条规则是您不能仅通过名称创建类型的实例。但是,如果您的插件通过某种注册表(想想包图像)宣布它包含哪些类型及其名称,那么您的主代码可以在该注册表中查找名称和类型并正常反映。

【讨论】:

    最近更新 更多