Rust数组是否有类似JavaScript的indexOf函数?

15
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var index = fruits.indexOf("Apple");
let fruits = ["Banana", "Orange", "Apple", "Mango"];
let index = fruits.???

如果没有相应的东西,也许你可以指点我一个方向?我找到了这个示例,但它是针对矢量而不是数组的。


如果没有相应的东西,也许你可以指点我一个方向?我找到了这个示例,但它是针对矢量而不是数组的。

它用于向量,而不是数组 - 在迭代时它们是相同的。 - Shepmaster
@Shepmaster,对于数组有(self)。position_elem(&“Apple”)这样的方法吗?如果没有,您认为如何创建一个呢?如果您愿意,可以在答案中添加它。 - user
1
标准库中已经没有任何 position_elem(我在链接问题的被接受答案上添加了一条评论)。另一个答案仍然有效,我已经编辑它以表明它适用于任何迭代器。 - Shepmaster
1个回答

34

你可以在任何迭代器上使用方法position。你可以使用iter()方法获取数组的迭代器。试试这样做:

let fruits = ["Banana", "Orange", "Apple", "Mango"];
let res1 = fruits.iter().position(|&s| s == "Apple");
let res2 = fruits.iter().position(|&s| s == "Peter");

println!("{:?}", res1);    // outputs: Some(2)
println!("{:?}", res2);    // outputs: None

8
Rust比Python和JavaScript更冗长。 ;) - Charlie 木匠

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接