Golang中的动态加载?

Car*_*cía 5 java go

我有一个共同的项目和小项目,如共同项目中的连接器.

我想创建一个公共项目,以便在开发新连接器时,我不必修改公共项目中的代码.是否有可能在Go中动态加载结构,只知道结构及其文件夹的路径(通过将此路径放在公共项目的文件中并在运行时加载该结构)?

connector1
  connector1.go
  /util
  /domain

connectorN
  connectorN.go 
  /domain

commonProject
   main.go
   config.ini
Run Code Online (Sandbox Code Playgroud)

结构config.ini

Conector
name = connector1
path = ..../connector1/connector1.go

Conector
name = connectorN
path = ..../connectorN/connectorN.go
Run Code Online (Sandbox Code Playgroud)

我知道用Java这样可以用这样的代码来实现这个,但是我想在Go中做这个.有任何想法吗?

Class.forName(String) 
Run Code Online (Sandbox Code Playgroud)

要么

ClassLoader.loadClass(String):
Run Code Online (Sandbox Code Playgroud)

icz*_*cza 1

在 Java 中,类在使用/引用时按需动态加载。

Go 生成静态链接的本机二进制文件,无需外部依赖项,因此您无法像在 Java 中那样加载新的“类型”或“函数” Class.forName()(至少不能用 Go 编写的代码)。