2017-05-16 49 views
3

我想知道延迟陈述如何工作以及它在何处实现(在编译器源代码中)。延期说明在哪里实施?

我找到了包约解析延迟结单,并在语法树

构建它,但我在推迟在运行时的实际exection interestetd。 我的猜测是,它的“源/运行”

回答

5

开始阅读这里https://github.com/golang/go/blob/d089a6c7187f1ff85277515405ec6c641588a7ff/src/runtime/panic.go#L70

您也可以搜索存储库中的“deferreturn”一词,以找到更多的结果里面的某个地方。

装配在这里推迟跳转https://github.com/golang/go/blob/master/src/runtime/asm_amd64.s#L550

+0

看起来就像第一次看。今天晚些时候我会详细介绍一下。 –

+0

谢谢,那就是我正在寻找的东西, –