相关疑难解决方法(0)

如何编写一个带迭代器的Rust函数?

我想编写一个接受迭代器的函数,并返回一些操作的结果.具体来说,我试图迭代a的值HashMap:

use std::collections::HashMap;

fn find_min<'a>(vals: Iterator<Item=&'a u32>) -> Option<&'a u32> {
    vals.min()
}

fn main() {
    let mut map = HashMap::new();
    map.insert("zero", 0u32);
    map.insert("one", 1u32);
    println!("Min value {:?}", find_min(map.values()));
}
Run Code Online (Sandbox Code Playgroud)

可惜:

error: the `min` method cannot be invoked on a trait object
 --> src/main.rs:4:10
  |
4 |     vals.min()
  |          ^^^

error[E0277]: the trait bound `std::iter::Iterator<Item=&'a u32> + 'static: std::marker::Sized` is not satisfied
 --> src/main.rs:3:17
  |
3 | fn find_min<'a>(vals: Iterator<Item = &'a u32>) -> Option<&'a u32> {
  | …
Run Code Online (Sandbox Code Playgroud)

iterator function rust

51
推荐指数
3
解决办法
1万
查看次数

标签 统计

function ×1

iterator ×1

rust ×1