Go
Collegare
Ricerca…
introduzione
Go fornisce un meccanismo di plugin che può essere utilizzato per collegare in modo dinamico altri codici Go in fase di runtime.
A partire da Go 1.8, è utilizzabile solo su Linux.
Definizione e utilizzo di un plugin
package main
import "fmt"
var V int
func F() { fmt.Printf("Hello, number %d\n", V) }
Questo può essere costruito con:
go build -buildmode=plugin
E poi caricato e usato dalla tua applicazione:
p, err := plugin.Open("plugin_name.so")
if err != nil {
panic(err)
}
v, err := p.Lookup("V")
if err != nil {
panic(err)
}
f, err := p.Lookup("F")
if err != nil {
panic(err)
}
*v.(*int) = 7
f.(func())() // prints "Hello, number 7"
Esempio da The State of Go 2017 .
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow