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 的所有权已经转移到了闭包内部
}
相关推荐
晓晓hh13 分钟前
JavaSe学习——基础
java·开发语言·学习
清水白石00825 分钟前
Python 内存陷阱深度解析——浅拷贝、深拷贝与对象复制的正确姿势
开发语言·python
phltxy32 分钟前
算法刷题|模拟思想高频题全解(Java版)
java·开发语言·算法
愚者游世39 分钟前
template学习大纲
开发语言·c++·程序人生·面试·visual studio
阿里嘎多学长40 分钟前
2026-03-11 GitHub 热点项目精选
开发语言·程序员·github·代码托管
宵时待雨42 分钟前
C++笔记归纳10:继承
开发语言·数据结构·c++·笔记·算法
VermouthSp42 分钟前
上下文切换
linux·rust
csbysj202043 分钟前
TypeScript String
开发语言
小温冲冲1 小时前
QML vs Qt Widgets:深度对比与选型实战指南
开发语言·c++·qt
smchaopiao1 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法