let mut x = 10;
let add_x = move |y| x + y;
println!("{}", add_x(5)); // 输出 15
x=13;
println!("{}", x); // 仍然可以使用 x
---
通过讨论后发现
move作为语义关键字 本身栈内存数据是复制的 对于有堆的 变量 move之后 原有变量再使用 编译器检查不通过
原先一直以为 编译器也会对栈上的原有内存做一些操作 其实没啥操作 move之后 再使用 编译不通过
语法上的约束 底层实现其实没做啥
栈上的内存随函数调用返回后释放
--
修改:nextworld8 FROM 223.104.40.*
FROM 223.104.40.*