这是什么语法?!M()是个啥?!
更多评论
eface = (interface{})(*(*interface {M()})(v.ptr)) // 就是两次类型转换
先看 (*interface {M()})(v.ptr)
表示类型转换,其中 *interface {M()})
表示匿名接口类型指针,接口的方法函数只有一个,就是M()
,这语句整体意思就是将v.ptr
转为(*interface {M()})
类型。
接着再解指针,再进行一次类型转换,转为(interface{})
,也就是空接口。