首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏旅途散记

    Rust开发⼲货集(1)--迭代器与消费器

    这说明iter() 不转移所有权(因为所有权转移意味着原始变量不再有效) 另外几种创建迭代器的方法: iter_mut() 和 into_iter() iter_mut() iter_mut() 方法用于创建一个可变借用 即 iter_mut() 用于需要修改集合中元素的场景,但并不转移所有权; 而 into_iter() 用于需要转移元素所有权的场景。 iter_mut() 有没有 cloned()方法? iter_mut() 方法返回的迭代器是一个可变引用的迭代器。 对于 iter_mut() 返回的迭代器,由于它提供的是对元素的可变引用(&mut T),使用 cloned() 方法是不适当的,也不符合 Rust 的安全性原则。 因此,在实际的 Rust 编程实践中,iter_mut() 迭代器上不会使用 cloned() 方法。

    40010编辑于 2024-01-09
  • 深入理解 Rust LinkedList:双向链表的结构与实践思考

    借用规则与可变性约束: 由于 Rust 的借用规则不允许同时存在多个可变引用,因此 LinkedList 的 iter_mut 实现非常精妙——它通过临时分离节点与尾指针的引用关系,在编译期保证“遍历时节点修改 iter 与 iter_mut: 通过保存当前节点的 NonNull<Node<T>> 实现惰性迭代器。iter_mut 通过可变借用包装,保证同一时间只暴露一个节点的可变引用。

    12610编辑于 2026-01-20
  • 来自专栏面向加薪学习

    27.Rust-迭代器

    iter() 返回一个只读可重入迭代器,迭代器元素的类型为 &T into_iter()返回一个只读不可重入迭代器,迭代器元素的类型为 T iter_mut

    31210编辑于 2022-09-04
  • 来自专栏每日一善

    rust的高级特性

    将静态值动态化,构建从任意地方可以访问的静态类型 迭代器 迭代器trait Iterator 命名规范 iter()通过引用获取元素 iter_mut()可变引用 * into_iter

    80010编辑于 2022-05-10
  • 来自专栏Rust语言学习交流

    【Rust日报】 2019-07-25:用 Rust,Cursive 和 PubNub 开发一个聊天客户端

    . */ } #[zoet(IntoIterator)] pub fn iter_mut(&mut self) -> IterMut { /* ... */ } #[zoet(IntoIterator

    85220发布于 2019-07-30
  • 来自专栏面向加薪学习

    14.Rust-循环

    iter_mut - 可变地(mutably)借用集合中的每个元素,从而允许集合被就地修改。就是停止本次执行剩下的语句,直接进入下一个循环。let mut studyList3 = vec!

    54030编辑于 2022-09-04
  • ator Trait:优雅的迭代器转换机制

    关键建议二:当你需要修改集合中的元素时,iter_mut() 是正确的选择。但要警惕引用的复杂性——不要在迭代时尝试重新借用相同的数据。

    13210编辑于 2025-12-24
  • 来自专栏福大大架构师每日一题

    2022-06-05:不规则数独问题。3*3填数独,每一行要填1~3,每一列要填1~3,3*3的区域会拆分成不规则的三个集团区域

    own[i as usize].push(0); } } for i in 0..3 { for arr in map[i as usize].iter_mut

    40610编辑于 2023-06-08
  • 来自专栏福大大架构师每日一题

    2022-06-05:不规则数独问题。 3*3填数独, 每一行要填1~3, 每一列要填1~3, 3*3的区域会拆分成不规则的三个集团区域, 每个集团区域3个格子

    own[i as usize].push(0); } } for i in 0..3 { for arr in map[i as usize].iter_mut

    86610编辑于 2022-06-05
  • 深入理解 Rust HashSet 与 BTreeSet:实现细节与工程思考

    四、安全与迭代器设计 无论 HashSet 还是 BTreeSet,Rust 都在迭代器层面实现了极高的安全性与零拷贝: 所有 iter()、iter_mut()、drain() 方法均基于生命周期系统

    8710编辑于 2026-01-20
  • 来自专栏Rust 编程

    算法题解 | Rust 字符串处理:替换所有问号

    // 使用 迭代器方法 `enumerate()` 可以在迭代的时候使用 index // 此处记得要 使用 `.iter_mut` 方法对chars进行可变借用,因为我们要原地替换字符。

    2K40发布于 2020-12-15
  • 来自专栏Rust语言学习交流

    【每周一库】- Rayon 数据并行计算库

    并行迭代器使编写类似迭代器的并行执行链变得容易:通常,您要做的就是将第一个.iter() (或 iter_mut(), into_iter(), 等) 方法转换为par_iter() (或 par_iter_mut

    1.5K20发布于 2020-03-25
  • 来自专栏Rust语言学习交流

    【连载】两百行Rust代码解析绿色线程原理(五)附录:支持 Windows

    pub fn spawn(&mut self, f: fn()) { let available = self .threads .iter_mut pub fn spawn(&mut self, f: fn()) { let available = self .threads .iter_mut pub fn spawn(&mut self, f: fn()) { let available = self .threads .iter_mut

    81220发布于 2020-02-12
  • 来自专栏【腾讯云开发者】

    详细解答!从C++转向Rust需要注意哪些问题?

    iter_mut():取得元素的可变引用,即&mut T,非消耗性。 into_iter():取得元素的所有权,即T,消耗性。 这里消耗性指的是在迭代完成之后,原来的容器是否还可以继续使用。 以std::vec::Vec为例,分别为Vec<T>、& Vec<T>和&mut Vec<T>实现了IntoIterator,并分别代理到into_iter()、iter() 和 iter_mut(),

    1.3K30发布于 2021-10-15
  • 来自专栏程序猿的大杂烩

    Rust流程控制

    ("{}", i); } } for … in … 语法的第二个重要使用场景是遍历数组,但这需要我们首先将数组转换为一个迭代器,这可以通过 .iter() 或 .iter_mut() 实现,区别在于后者是可变的

    83010编辑于 2022-06-01
  • 来自专栏rust

    Rust实战:200行代码写一个命令行TODO工具

    个这里体现了Rust的可变性控制:if let Some(todo) = todos.iter_mut().find(|t| t.id == id) { todo.completed = true;}.iter_mut

    1.3K160编辑于 2026-01-03
  • 来自专栏Rust语言学习交流

    【连载】两百行Rust代码解析绿色线程原理(四)一个绿色线程的实现

    : pub fn spawn(&mut self, f: fn()) { let available = self .threads .iter_mut pub fn spawn(&mut self, f: fn()) { let available = self .threads .iter_mut

    83830发布于 2020-02-12
  • 来自专栏CSDNToQQCode

    Rust专项——循环详解:掌握重复执行的艺术

    iter() 返回不可变引用 // } // 解决方案1:使用iter_mut() for num in numbers.iter_mut() { *num

    15010编辑于 2025-12-16
  • 来自专栏stark张宇

    Rust - 安装环境、基本类型、流程控制、函数、模块、泛型、所有权

    ("i value is {}",i); }}for in 语法第二个重要的使用场景是遍历数组,但这首先将数组转化为一个迭代器,可以通过.iter()或者.iter_mut实现,区别是在于后者是可变的

    1.4K30编辑于 2023-02-24
  • 来自专栏Rust语言学习交流

    【翻译】200行代码讲透RUST FUTURES (2)

    RUNTIME as *mut Runtime; let available = (*rt_ptr) .threads .iter_mut

    93410发布于 2020-07-28
领券