Rust move

一、move有什么用

当你在闭包前 加上 move 关键字 时,闭包会强制获取 其所需变量的所有 权。这意味着即使在闭包外部变量的所有权转移给闭包闭包之外的代码不能再使用这些变量

看两段代码

rust 复制代码
fn main() {
    let x = String::from("value");

    let closure = || {
        println!("x: {}", x);
    };

    closure(); // 调用闭包

    println!("x: {}", x); // 这一行将会导致编译正确,因为变量 x 的所有权没有转移到了闭包内部
}

使用move之后

rust 复制代码
fn main() {
    let x = String::from("value");

    let closure = move|| {
        println!("x: {}", x);
    };

    closure(); // 调用闭包

    println!("x: {}", x); // 这一行将会导致编译错误,因为变量 x 的所有权已经转移到了闭包内部
}
相关推荐
Brilliantwxx2 分钟前
【C++】认识vector(概念+题目OJ)
开发语言·c++·笔记·算法
逻辑驱动的ken5 分钟前
Java高频面试考点场景题22
java·开发语言·jvm·面试·职场和发展·求职招聘·春招
枫叶丹48 分钟前
【HarmonyOS 6.0】Core File Kit:端云文件版本管理能力解析与实践
开发语言·华为·harmonyos
初心未改HD11 分钟前
Go 文件与 I/O 操作完全指南
开发语言·golang
szial15 分钟前
uv 实战指南:用一个工具重塑 Python 开发工作流
开发语言·python·uv
DogDaoDao16 分钟前
【GitHub】Warp 终端深度解析:Rust + GPU 加速的 AI 原生终端开源架构
人工智能·程序员·rust·开源·github·ai编程·warp
wjs202427 分钟前
HTML 段落
开发语言
wangruofeng30 分钟前
Rust 深度调研:从 Linux 内核到 Cloudflare,为什么最硬核的项目都在用 Rust?
架构·rust
CSCN新手听安33 分钟前
【Qt】Qt窗口(五)QDialog对话框的使用,点击按钮弹出新的对话框,自定义对话框界面,模态对话框model
开发语言·c++·qt
咸甜适中34 分钟前
rust语言学习笔记Trait之Debug、Display
笔记·学习·rust