这篇文章指出:“defer 语句将函数调用推送到列表中。” 我想知道是否可以从程序中的另一个位置访问该列表中的元素然后调用它们?我可以多次调用它们吗?我假设我引用了具有延迟行为的函数(如果有帮助的话)。
所以,这是我想做的一个简短的例子:
func main {
doStuff = func() {
// open database connections
// write temporary files
// etc...
defer func() {
// close database connections
// delete temporary files
// etc...
}()
}
AwesomeApplication(doStuff)
}
func AwesomeApplication(doStuff func()) {
// Now, can I get a reference to the defer function within `doStuff`?
// No, I can't just define the defer function somewhere an pass it
// with `doStuff`. Think of this as a curiosity I want to satisfy,
// not a real use case.
}