2017-05-16 2 views
3

Ich würde gerne wissen, wie und warum die Defer-Anweisung funktioniert und wo es implementiert ist (im Compiler Source Code).Wo ist die Defer-Anweisung implementiert?

fand ich das Paket über das Zurückstellungs-Statement Parsen und es in dem Syntax-Baum

Aber ich bin interestetd in der eigentlichen exection von defer zur Laufzeit zu bauen. Meine Vermutung ist, dass es irgendwo in der „src/runtime“ ist

Antwort

5

Lesen beginnen hier https://github.com/golang/go/blob/d089a6c7187f1ff85277515405ec6c641588a7ff/src/runtime/panic.go#L70

Sie können auch das Repository für den Begriff „deferreturn“ suchen weitere Ergebnisse zu finden.

Versammlung für defer springt hier https://github.com/golang/go/blob/master/src/runtime/asm_amd64.s#L550

+0

Scheinen rechts auf den ersten Blick. Ich werde heute später genauer hinsehen. –

+0

Danke, das ist was ich gesucht habe, –