go - 给定一个方法值,获取接收者对象
问题描述
Go 中有没有办法从方法值中获取接收者对象?
例如,是否有任何这样的东西MagicFunc
会使以下程序my info
从底层 Foo 实例输出字符串。
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
字符串。
推荐阅读
- c# - 我应该为 .NET Core + Xamarin Android App 使用哪种类型的类库项目?
- python - MySQL/Python 连接器无法搜索
- ios - 如何通过情节提要中的组件自己制作容器视图大小
- python-3.x - pdf2image 路径中的 Poppler
- docker - 在 OpenShift 集群中查找 Docker 的版本
- javascript - 在容器中访问 Reducer 返回 undefined
- javascript - 来自json数据的Bootstrap nave bar给出了一些不同的结果
- android - Flutter - 获取 SHA-1 证书 - Android Studio 3.2.1
- ios - 缩放和滚动支持 UICollectionView
- node.js - 从nodejs获取数据到谷歌地图的前端js,但一直在检索它寻找解决它的方法