Go中有没有一种方法可以从方法值中获取接收者对象?
例如,是否存在这样的MagicFunc
,它将使以下程序从基础Foo实例输出字符串my info
。
package main
import "fmt"
type Foo struct {
A string
}
func (foo *Foo) Bar() string {
return "bar"
}
func MyFunc(val interface{}) {
i := MagicFunc(val)
f := i.(Foo)
fmt.Println(f.A)
}
func main() {
f := Foo{A: "my info"}
MyFunc(f.Bar)
}
最佳答案
不,不可能获得该方法的接收者实例。
如果使用方法表达式而不是方法值,则最多可以得到的是接收者的类型,但这不能帮助您获取my info
字符串。
关于go - 给定方法值,获取接收者对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59040161/