rust - 为什么每次迭代后变量的值都没有更新?
问题描述
我有一个大数组,我正在使用它进行切片split_at()
:
let (left, right) = large_array.split_at(i);
我正在做一些操作left
,然后继续right
在一个while循环中切片,直到right
为空。
// test vector
let v: Vec<u8> = vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let (left, right) = v.split_at(1); // left = [1], right = [2,3,4 ... 10]
let j: u8 = left[0];
for i in 1..10 {
println!("{} {}", j, right.len()); // prints "1 9" on all iterations
let (left, right) = right.split_at(1);
let j: u8 = left[0];
println!("{} {}", j, right.len()); // prints "2 8" on all iterations
}
虽然在第一次迭代期间长度right
从 9 变为 8,但在第二次迭代中它又恢复为 9。这是什么原因造成的?
解决方案
推荐阅读
- r - 映射函数以迭代 t.test
- reactjs - 特殊属性更改时仅运行一次 useEffect
- php - 具有多个值列的 3 个表的 sql 查询
- javascript - 如何将 Google Analytics 集成到您的 Nuxt.js 应用程序中
- sql - 查找最新记录
- c# - 清除 Console.ReadLine 和 Console.Read 之间的控制台缓冲区
- c - 用于判断数字是否为“完美数字”的代码
- kotlin - Jetpack Compose Row 水平排列约束
- bash - 如何使用 bash 脚本/CMakeLists.txt 运行 cmake
- database - 如何在 sequelize 中使用 exclude 定义 postgresql int8range