我希望能够创建一个 Range
然后测试该范围内是否包含变量。看起来像这样的东西:
fn main() {
let a = 3..5;
assert!(a.contains(4));
}
现在,我看到的唯一明显的事情就是使用 Iterator::any
.这很丑陋,因为它需要 O(1) 操作并使其成为 O(n):
fn main() {
let mut a = 3..5;
assert!(a.any(|v: i32| v == 4));
}
最佳答案
从 Rust 1.35 开始,原始代码将几乎1 使用 Range::contains
按原样编译:
fn main() {
let a = 3..5;
assert!(a.contains(&4));
}
1 将 &4
而不是 4
传递给 contains()
。
关于rust - 如何测试一个值是否在一个范围内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28265036/