28. defer 和 defer_delete 宏

Apply 模块实现了 deferdefer_delete 模式,即能够在不离开代码上下文的情况下将一些代码或 delete作附加到块的 finally 部分。

所有函数和交易品种都在 “defer” 模块中,使用 require 来访问它。

require daslib/defer

28.1. 函数注释

DeferMacro

此宏转换 defer() <| block 表达式转换为 {},并将 block 移动到当前块的 finally 部分

28.2. 调用宏

defer_delete

该宏将 defer_delete() 表达式转换为 {},并将 delete 表达式添加到当前块的 finally 部分

28.3. Defer

defer(blk: block<void> const)

argument

argument type

blk

block<> const

defer 一段代码。例如:

var a = fopen("filename.txt","r")
defer <|
    fclose(a)

当 ‘a’ 超出范围时将关闭文件。

28.4. Stub

nada()

helper 函数,该函数不执行任何作,并且将被优化