我想从bool
中取一个Vec<bool>
并在if语句中进行比较。如何解决以下错误?
|
7 | if cell {
| ^^^^ expected bool, found &bool
|
= note: expected type `bool`
found type `&bool`
if cell.clone()
对我有用,但似乎有点蠢蠢。
答案 0 :(得分:5)
从
获取bool
Vec<bool>
就这样做:
let foo = vec![true];
if foo[0] { /* ... */ }
bool
实现Copy
,因此索引数组会将值复制出来。
如果您在向量中引用了布尔值,则需要取消引用它:
let foo = vec![true];
if let Some(val) = foo.last() {
if *val { /* ... */ }
}
或者
let foo = vec![true];
if let Some(&val) = foo.last() {
if val { /* ... */ }
}