github.com/glycerine/zebrapack@v4.1.1-0.20181107023619-e955d028f9bf+incompatible/slides/state-of-go/stdlib/plugin/main.go (about)

     1  package main
     2  
     3  import "plugin"
     4  
     5  func main() {
     6  	p, err := plugin.Open("plugin_name.so")
     7  	if err != nil {
     8  		panic(err)
     9  	}
    10  
    11  	v, err := p.Lookup("V")
    12  	if err != nil {
    13  		panic(err)
    14  	}
    15  
    16  	f, err := p.Lookup("F")
    17  	if err != nil {
    18  		panic(err)
    19  	}
    20  
    21  	*v.(*int) = 7
    22  	f.(func())() // prints "Hello, number 7"
    23  }