查看 mutex.go的代码的时候 里面的 func throw (string) 这个函数没有方法体为什么没有报错
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
throw函数是在 runtime/panic.go 中声明的,但是注意看他首字母是小写的,所以为了突破访问限制, 需要这么声明一下
go的黑科技
provided by runtime 这是重写了 runtime的throw方法。我昨天知道。一直不知道golang有重写,准确的说是覆盖。
//go:linkname sync_throw sync.throw func sync_throw(s string) { throw(s) } 在panic.go 是这样定义的,通过 go:linkname 指令将将当前(sync_throw)方法在编译时链接到sync.throw
`单行代码`
throw函数是在 runtime/panic.go 中声明的,但是注意看他首字母是小写的,所以为了突破访问限制, 需要这么声明一下
go的黑科技
provided by runtime 这是重写了 runtime的throw方法。我昨天知道。一直不知道golang有重写,准确的说是覆盖。
//go:linkname sync_throw sync.throw func sync_throw(s string) { throw(s) } 在panic.go 是这样定义的,通过 go:linkname 指令将将当前(sync_throw)方法在编译时链接到sync.throw