Avatar ·

如何在 Rust 中遍历 Vec<T> 并获取元素索引?

大家好!我最近开始学习 Rust,遇到了一个问题:如何遍历向量并访问元素的索引。 在其他语言中,比如 Python 或 JavaScript,我习惯写类似 `for i, value in enumerate(list)` 或 `for (let i = 0; i < arr.length; i++)` 的代码。而在 Rust 中,我知道可以直接用 `for value in vec`,但这样会丢失索引。 我需要输出向量中所有元素及其位置,例如: ```rust let items = vec!["яблоко", "банан", "вишня"]; // 想要得到:"0: яблоко", "1: банан", "2: вишня" ``` 我尝试过这样写: ```rust for i in 0..items.len() { println!("{}: {}", i, items[i]); } ``` 这样是可行的,但我听说通过方括号进行索引访问可能会导致 panic,如果索引越界的话。虽然这里我控制了长度,但这在 Rust 中看起来不够地道。而且,如果向量在迭代过程中发生变化,可能会出现问题。 如何正确且安全地迭代?