Avatar ·

如何在Rust中查找数组、向量或切片中元素的索引?

你好!我是Rust新手,正在尝试解决一个简单问题:在数组中查找元素的索引。在其他语言(如Python)中,我习惯使用类似`list.index()`的方法,但在Rust中完全不同。 这是一个例子:我有一个数字数组,想找到数字`5`的索引。 ```rust fn main() { let arr = [1, 3, 5, 7, 9]; let target = 5; // 如何找到5的索引? } ``` 我尝试过使用`arr.iter().position(|x| x == target)`,但遇到了错误。文档说`position`返回`Option`,我不明白如何正确处理这个结果。我也不确定这对`Vec`和切片(`&[i32]`)是否有效。 还有一个问题:如果元素未找到怎么办?在Python中我会得到异常,而在Rust中,据我所知,需要处理`None`。但如何优雅且符合习惯地做到这一点? 如果能提供数组、向量和切片的示例,我将不胜感激。我想了解这在Rust中如何工作,特别是考虑到所有权和借用系统。提前感谢!