Rust 计算借用的布尔值
这方面有什么工作吗 可以计算借用的布尔值吗?我对生锈还很陌生,所以我可能没有使用正确的术语Rust 计算借用的布尔值,rust,Rust,这方面有什么工作吗 可以计算借用的布尔值吗?我对生锈还很陌生,所以我可能没有使用正确的术语 fn control(map: &[bool;5]) -> bool { let mut hold = false; for n in map.iter() { if n { hold = true; break; } } hold } 您可以像在if*n{中那样简单地取消引用n
fn control(map: &[bool;5]) -> bool {
let mut hold = false;
for n in map.iter() {
if n {
hold = true;
break;
}
}
hold
}
您可以像在
if*n{
中那样简单地取消引用n
,它将被编译。n
是一个&bool
在您的示例中,*n
给您一个bool
,这是编译器所期望的
控件的较短版本为
fn control(map: &[bool]) -> bool {
map.iter().any(|e| *e)
}
上面使用借用的切片(&[bool]
)而不是固定大小的数组作为输入参数;这严格来说更强大,因为所有数组都可以作为切片借用。版本中的循环被折叠到any()中
所有迭代器都提供的方法。您可以简单地取消引用n
,就像中的那样,如果*n{
将被编译。n
是&bool
在您的示例中,*n
给您一个编译器期望的bool
控件的较短版本为
fn control(map: &[bool]) -> bool {
map.iter().any(|e| *e)
}
上面使用借用的切片(&[bool]
)而不是固定大小的数组作为输入参数;这严格来说更强大,因为所有数组都可以作为切片借用。版本中的循环被折叠到any()中
所有迭代器提供的方法。请包含来自编译器的完整错误消息。是否要询问是否可以计算借用的布尔值或修复您的代码?其关系如何?@KamilCuk更多的是了解为什么不能或如何使其成为可能。请包含来自com的完整错误消息piler。你想问是否可以计算借用的布尔值或修复你的代码?它是如何关联的?@KamilCuk更多的是关于理解为什么不这样做或如何使之成为可能。谢谢你的回答!你能解释引用的含义吗?谢谢你的回答!你能解释引用的含义吗?