stage1 重构测试且成功00-05
This commit is contained in:
39
stage1/test15_defer.spl
Normal file
39
stage1/test15_defer.spl
Normal file
@@ -0,0 +1,39 @@
|
||||
/* ===== 模块7:高级特性 =====
|
||||
* test15_defer — 延迟执行
|
||||
* 难度:3/5
|
||||
* 验证点:defer 语句、defer 块、多个 defer(逆序执行)、
|
||||
* 函数中 defer、块作用域 defer
|
||||
*/
|
||||
#[extern("vm")] fn vm_printf(fmt: *u8, ...) void;
|
||||
|
||||
fn with_cleanup() void {
|
||||
defer vm_printf(" inner defer\n");
|
||||
vm_printf(" inside with_cleanup\n");
|
||||
}
|
||||
|
||||
fn main() i32 {
|
||||
vm_printf("--- defer test ---\n");
|
||||
|
||||
/* defer 语句 */
|
||||
defer vm_printf("defer1\n");
|
||||
vm_printf("after defer1\n");
|
||||
|
||||
/* defer 块 */
|
||||
defer {
|
||||
vm_printf("defer block\n");
|
||||
}
|
||||
vm_printf("after defer block\n");
|
||||
|
||||
/* 函数内 defer */
|
||||
with_cleanup();
|
||||
vm_printf("after with_cleanup\n");
|
||||
|
||||
/* 多个 defer 应逆序执行 */
|
||||
defer vm_printf("defer last\n");
|
||||
defer vm_printf("defer middle\n");
|
||||
defer vm_printf("defer first (should print third)\n");
|
||||
|
||||
vm_printf("--- defer test end ---\n");
|
||||
|
||||
ret 0;
|
||||
}
|
||||
Reference in New Issue
Block a user