检查 Rust HashMap 中的任何值是否大于零

kam*_*nis 0 hashmap any rust

我想检查 a 是否HashMap<i32, i32>包含任何大于零的值。我有这个代码:

let has_demand = minimums.iter().any(|*x| x > 0)
Run Code Online (Sandbox Code Playgroud)

这失败了。问题出在|*x|,但我不知道该放什么。

Jay*_*Jay 5

语法错误。您应该使用&x,这是一个引用(而不是*x,这是一个取消引用)。

它是 a HashMap(不是 a Vec),因此要检查值,您需要迭代这些值(而不是整个HashMap)。

示例代码:

let value_exists = hashmap.values().any(|&x| x > 0);
Run Code Online (Sandbox Code Playgroud)

请查看文档: