【发布时间】:2019-05-26 20:39:31
【问题描述】:
我想定义一个函数every,它接受一个迭代器,虽然它不是None,但要确保所有值都是true。
示例应用:
every([true, true, true].into_iter()) == true
every([true, false, true].into_iter()) == false
我很难让它仅与Vec 一起工作,更不用说Iterator。我已经尝试了以下和一些变体,但没有得到任何结果。
use std::ops;
fn every<T>(v: Vec<T>) -> bool
where
T: ops::Not,
{
for item in v {
match !item {
T::No => return false,
}
}
true
}
此代码得到错误:
error[E0599]: no associated item named `No` found for type `T` in the current scope
--> src/lib.rs:9:13
|
9 | T::No => return false,
| ^^^^^ associated item not found in `T`
【问题讨论】:
-
你可以使用
Iterator::all