这是什么神仙语法?!

liuwangchen · 2019-03-18 14:11:02 · 3319 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-03-18 14:11:02 的主题,其中的信息可能已经有所发展或是发生改变。

image.png

这是什么语法?!M()是个啥?!


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3319 次点击  
加入收藏 微博
5 回复  |  直到 2019-03-18 16:17:58
sheepbao
sheepbao · #1 · 6年之前
eface = (interface{})(*(*interface {M()})(v.ptr))    // 就是两次类型转换

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

liuwangchen
liuwangchen · #2 · 6年之前
sheepbaosheepbao #1 回复

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

学习了

DKLuck
DKLuck · #3 · 6年之前

谁这样写,就锤他

liuwangchen
liuwangchen · #4 · 6年之前
DKLuckDKLuck #3 回复

谁这样写,就锤他

哈哈没错!

jthmath
jthmath · #5 · 6年之前

如果不是万般无奈,这样写是很坑人的

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传