Go中实现的函数值('函数指针')究竟是怎样的?

时间:2017-06-06 16:53:03

标签: go function-pointers member-function-pointers

来自the documentation for reflect.Value.Pointer()

  

如果v的Kind是Func,则返回的指针是底层代码指针,但不一定足以唯一地标识单个函数。唯一的保证是当且仅当v是nil func值时结果为零。

似乎很清楚,函数值变量必须包含的不仅仅是代码指针。鉴于Go支持方法指针,这并不奇怪 - 但实际的底层实现是什么?

(如果有的话,对于使用反射创建的函数值,它有何不同?请参阅注释in the source for Value.Pointer()。)

1 个答案:

答案 0 :(得分:1)

the design document的“新实现”部分描述了如何表示函数指针。