我正在实现一个加载 go 插件的 go 模块。
我假设主包上存在具有特定名称和特定签名的函数,并且希望在找不到或与预期签名不匹配的情况下有一个很好的错误消息。
给定一个具有函数类型的变量,如何获得该函数的底层签名?
以下仅打印类型的名称(例如main.ModuleInitFunc)而不是完整签名。
package main
import "fmt"
type ModuleInitFunc func(someInt int) error
func main() {
var myFunc ModuleInitFunc = nil
fmt.Printf("%T", lol)
}
Run Code Online (Sandbox Code Playgroud)