我尝试将一个函数作为参数传递,并在线程中调用它。which is freed while still in use
| argument requires that borrow lasts for `'static` 我认为将其发送到线程时Fn应该是静态的,但当我将其生命周期更改为'static时,它会报错。另外,我不知道是否可以使用ImageHandler作为参数。我不明白这一点。
我有一个用例,在这个用例中,我需要在闭包中包装对method的调用。所需的行为是使用input调用闭包与用input调用obj.method ( obj实现Interface )相同。captured variables can't escape the closure
当它说捕获变量的closure implements FnMut, so references to c
where F: Fn(&'a i32) -> i32 let value = 0;}
当函数具有显式的生存期参数时,该生存期必须至少与对该函数的整个调用一样长。借方检查程序会抱怨值存在的时间不够长,因为它只是在函数体中声明之后才在作用域内。根据我的理解,价值贯穿于函数的整个调用过程。那么,“活得不够久”从何而来呢?