Hui*_*Hui 0 reflection go
如何调用未导出的包函数,例如包函数hello()定义为:
package testlib
import "fmt"
func hello() {
fmt.Println("Hello testlib")
}
Run Code Online (Sandbox Code Playgroud)
并且主要包裹有来电:
package main
import (
_ "reflect"
"testlib"
)
func main() {
testlib.hello()
}
Run Code Online (Sandbox Code Playgroud)
当然,这个程序是不正确的.我google了很多,很多人提到反射包可以用来调用一个未导出的函数,如:
obj := ... (some object)
val := reflect.ValueOf(obj);
fun := val.MethodByName("hello")
fun.Call([]reflect.Value{})
Run Code Online (Sandbox Code Playgroud)
但是所有示例都基于对象(即结构),而不是包.我的问题是我要调用一个包函数,而不是一个对象函数.谢谢.