闭包实现,和特征的 具体条件是什么?Fn``FnMut``FnOnce
Fn``FnMut``FnOnce
那是:
FnOnce
FnMut
Fn
例如,在其主体上改变闭包的状态会使编译器无法Fn在其上实现。
每个特征都代表了越来越多的关于闭包/函数的限制性属性,由它们的call_...方法的签名指示,特别是 的类型self:
call_...
self
&mut self
&mut
&self
&
闭包|...| ...将自动实现尽可能多的那些。
|...| ...
这些限制直接来自self闭包的类型和“去糖”到结构中;在我的博文 Finding Closure in Rust 中进行了描述。
有关闭包的信息,请参阅闭包:可以在 Rust 编程语言 中捕获其环境的匿名函数。