Go 1.8 的 Plugins 使用
Go 1.8為我們提供了一個建立共享庫的新工具,稱為Plugins!讓我們來建立和使用一個外掛。 目前的外掛只能在 Linux 和 Darwin (1.8正式版 因為 bug 已移除支援)上工作。
安裝1.8 beta1, 不做說明.
建立一個外掛方法到 aplugin.go:
package main
func Add(x, y int) int {
return x+y
}
func Subtract(x, y int) int {
return x-y
}
然後構建外掛:
執行下面命令構建外掛:
go build -buildmode=plugin
構建指定檔案外掛aplugin.go到aplugin.so:
go build -buildmode=plugin -o aplugin.so aplugin.go
載入外掛:
p, _ := plugin.Open("./aplugin.so")
//p, err := plugin.Open("./aplugin.so")
call外掛:
add, _ := p.Lookup("Add")
sub, _ := p.Lookup("Subtract")
使用外掛:
sum := add.(func(int, int) int)(11, 2)
fmt.Println(sum)
subt := sub.(func(int, int) int)(11, 2)
fmt.Println(subt)
另外原始碼測試中有:
go build -buildmode=c-shared
應該可以支援c語言構建外掛
相關文章
- Go 1.8 的 plugin 使用GoPlugin
- [譯]Go 1.8 新特性Go
- Unity Plugins的使用方法UnityPlugin
- go 1.8 xml解析不支援cdataGoXML
- gulp 和 gulp plugins 使用Plugin
- Mvvmcross Plugins - Cirrious.MvvmCross.Plugins.MessengerMVVMROSPluginMessenger
- JDK 1.8收集器使用JDK
- Jquery PluginsjQueryPlugin
- 在FlashDevelop裡使用1.8版本的的TortoiseSVNdev
- Innodb plugins 的安裝(一)Plugin
- Innodb plugins 的安裝(二)Plugin
- Innodb plugins 的安裝(三)Plugin
- 複習webpack4之使用plugins便捷打包WebPlugin
- 使用Percona Monitoring Plugins模板監控MySQLPluginMySql
- JDK1.8之Lambda解析與表示式的使用JDK
- Facebook之Social PluginsPlugin
- go 的變數使用Go變數
- Go | 閉包的使用Go
- GO 的 range 如何使用?Go
- vite plugins小試牛刀VitePlugin
- 據說Go1.8版本的GC已經優化到吊炸天的程度了GoGC優化
- Dockerfile入門(使用Dockerfile生成jdk1.8映象)DockerJDK
- Go的安裝和使用Go
- Go 語言中的 collect 使用Go
- iota 在 Go 中的使用Go
- 本站使用go寫的嗎?Go
- jQuery 開啟 1.8 時代,1.8 Beta 1 釋出jQuery
- webpack學習(四)配置pluginsWebPlugin
- webpack3--plugins大用處WebPlugin
- 【漢化】Yanfly Engine Plugins - TemplatePlugin
- go template使用Go
- Go Rabbitmq 使用GoMQ
- go mod 使用Go
- go slice使用Go
- Go 模組--開始使用 Go ModulesGo
- Unity實現子目錄下的Plugins載入UnityPlugin
- 探索Semantic Plugins:開啟大模型的技能之門Plugin大模型
- 使用com.sun.imageio.plugins.png.PNGMetadata讀取圖片的後設資料Plugin