【发布时间】:2020-11-29 14:59:33
【问题描述】:
我正在尝试打印数组中第一个不完全是 1 大于前一个数字的数字(在以下示例中,预期结果是 7)。
我写了&n > 0 && 以避免在第一个数字之前检查(不存在的)数字。
fn main() {
let numbers = [4, 5, 7];
let result = numbers.iter().position(|&n| &n > 0 && n != numbers[&n - 1] + 1);
println!("{:?}", result);
}
我收到关于 0 的编译器错误:
预期的参考,找到整数
帮助:考虑在这里借用:
&0
基本上我正在尝试做这个 JavaScript 所做的事情:
numbers.find((n, i) => i && n != numbers[i - 1] + 1);
谁能告诉我我做错了什么?
我假设 n 是值,&n 是索引。如果这不正确,那么我如何在 Lamba 中获取索引?
【问题讨论】:
标签: arrays lambda rust iterator