func throw (string) 这个函数妹有方法体为什么没有报错

miss201 · 2018-07-30 11:38:24 · 1149 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-07-30 11:38:24 的主题,其中的信息可能已经有所发展或是发生改变。

image.png 查看 mutex.go的代码的时候 里面的 func throw (string) 这个函数没有方法体为什么没有报错


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

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

1149 次点击  
加入收藏 微博
4 回复  |  直到 2018-10-29 13:35:42
younger0616
younger0616 · #1 · 7年之前

throw函数是在 runtime/panic.go 中声明的,但是注意看他首字母是小写的,所以为了突破访问限制, 需要这么声明一下

jingyugao
jingyugao · #2 · 7年之前

go的黑科技

lihui7800
lihui7800 · #3 · 7年之前

provided by runtime 这是重写了 runtime的throw方法。我昨天知道。一直不知道golang有重写,准确的说是覆盖。

weapon008
weapon008 · #4 · 6年之前

//go:linkname sync_throw sync.throw func sync_throw(s string) { throw(s) } 在panic.go 是这样定义的,通过 go:linkname 指令将将当前(sync_throw)方法在编译时链接到sync.throw

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