boolean - 预期类型 `bool` ,发现类型 `&bool`

标签 boolean rust

我想拍一张bool来自Vec<bool>并在 if 语句中进行比较。如何解决以下错误?

  |
7 |             if cell {
  |                ^^^^ expected bool, found &bool
  |
  = note: expected type `bool`
             found type `&bool`

if cell.clone()对我有用,但似乎有点 hackisch。

最佳答案

take a bool from a Vec<bool>

就这样做:

let foo = vec![true];
if foo[0] { /* ... */ }

bool工具 Copy ,因此索引数组会将值复制出来。

如果您引用了向量中的 boolean 值,则需要取消引用它:

let foo = vec![true];
if let Some(val) = foo.last() {
    if *val { /* ... */ }
}

或者

let foo = vec![true];
if let Some(&val) = foo.last() {
    if val { /* ... */ }
}

关于boolean - 预期类型 `bool` ,发现类型 `&bool`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44788026/

相关文章:

java - 为什么总是发现它们都是真的?

java - 如何使用返回 2 个以上值的 boolean 方法

jsf - 在 Primefaces DataTable 中表示一个 boolean 值

macros - 如何匹配宏中的方法?

rust - 如何减少 std::io::Chain

rust - 为什么不能在同一结构中存储值和对该值的引用?

rust - 如何将 Arc<T> 与 T 进行比较?

user-interface - Three.js GUI 的切换按钮

python - 计算数据框列中 True/False 的出现次数

rust - 为什么 Option<i32> 在传递给函数时不被消耗?