相关疑难解决方法(0)

闭包何时实现Fn,FnMut和FnOnce?

哪些具体条件为闭合来实现Fn,FnMutFnOnce特质?

那是:

  • 闭包什么时候没有实现这个FnOnce特性?
  • 闭包什么时候没有实现这个FnMut特性?
  • 闭包什么时候没有实现这个Fn特性?

例如,改变它的主体上的闭包状态会使编译器无法实现Fn它.

closures rust

97
推荐指数
2
解决办法
1万
查看次数

我如何使用在检查相同值的循环中可变捕获变量的闭包?

fn main() {
    let mut foo = 1;

    let mut func = || foo += 1;
    while foo < 5 {
        func();
    }
}
Run Code Online (Sandbox Code Playgroud)
fn main() {
    let mut foo = 1;

    let mut func = || foo += 1;
    while foo < 5 {
        func();
    }
}
Run Code Online (Sandbox Code Playgroud)

我明白为什么这不起作用,但我正在寻找一种以某种方式绕过借用检查器的方法。有没有办法在这里使用闭包?除了使用函数之外,还有其他好的选择吗?我遇到了必须更改几个变量的情况。

closures rust

2
推荐指数
1
解决办法
392
查看次数

标签 统计

closures ×2

rust ×2