// 闭包测试 — 非捕获 lambda + 变量捕获 fn make_adder(base: i64) -> i64 { let adder = fn(x: i64) -> i64 { return x + base; }; return adder(50); } fn main() -> void { // 测试1: 非捕获 lambda let double = fn(x: i64) -> i64 { return x * 2; }; print_i64(double(21)); // 42 // 测试2: 捕获单个变量 let base = 100; let add = fn(x: i64) -> i64 { return x + base; }; print_i64(add(50)); // 150 // 测试3: 捕获多个变量 let a = 10; let b = 20; let sum3 = fn(x: i64) -> i64 { return x + a + b; }; print_i64(sum3(5)); // 35 // 测试4: 函数内创建闭包 let r = make_adder(200); print_i64(r); // 250 }