[关闭]
@LIUHUAN 2020-04-06T18:17:17.000000Z 字数 757 阅读 1091

Golang 插件

Blog


Go 插件

概念

使用方法

  1. // Add.go
  2. package main
  3. import (
  4. "fmt"
  5. )
  6. type Number struct {
  7. A, B int32
  8. }
  9. func (n *Number) String() string {
  10. return fmt.Sprintf("[%d,%d]", n.A, n.B)
  11. }
  12. func (n *Number) Add() int32 {
  13. return n.A + n.B
  14. }
  15. var Num Number
  16. func Hello(s string) string {
  17. return fmt.Sprintf("hello %s,%+v,%d", s, Num, Num.Add())
  18. }
  19. func main() {}
  1. // main.go
  2. package main
  3. import (
  4. "log"
  5. "plugin"
  6. )
  7. func main() {
  8. fname := "Add.so"
  9. p, err := plugin.Open(fname)
  10. if err != nil {
  11. log.Println(err)
  12. return
  13. }
  14. h, err := p.Lookup("Hello")
  15. if err != nil {
  16. log.Println(err)
  17. return
  18. }
  19. hf := h.(func(string) string)
  20. r := hf("liuhuan")
  21. log.Println(r)
  22. }

用途

原理

参考内容

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注