裸函数作为指针不是什么新鲜事,其它的语言也是可以的,golang当然也可以,譬如
但是像下面这样,对象实例的方法是否可以作为函数参数传递呢?
答案是肯定的,而且很智能:
当特定对象实例的method作为函数指针时传递时,接受者会保证在调用的时候,调用到是这个对象实例的method,method的任何操作都会针对该对象实例生效,而且不需要传任何类似于this、self指针之类的东西
换句话说,对象实例+method 作为绑定的整体传递给接受者的
通过以下代码可以验证
执行起来输出如下结果
参考文章
https://groups.google.com/forum/#!topic/golang-nuts/t1r6px7yGIY
https://github.com/golang/go/issues/2280