Go 语言的插件系统就是基于 程序的运行期间动态调用 实现的,也就是动态库或动态链接库。插件系统是基于 C 语言的动态库实现的。
示例
插件实现的两个函数 Add 和 Sub 在文件 func-plugin.go 里
packagemain// go build -buildmode=plugin -o main.so func-plugin.goimport"fmt"// Add two integersfuncAdd(aint,bint)int{fmt.Printf("\nAdding a=%d and b=%d\n",a,b)returna+b}// Sub two integersfuncSub(aint,bint)int{fmt.Printf("\nSubtracting b= %d from a=%d\n",b,a)returna-b}
编译成动态库 go build -buildmode=plugin -o main.so func-plugin.go