闭包自动实现特征
闭包会根据捕获变量的类型来自动实现 Clone、Copy、Send 和 Sync,当定义一个闭包时 || {...},他可以是 Fn、FnMut 或 FnOnce(这些也是特征),当然还可以把他限定成 Fn + Clone、Fn + Copy 等,比如:
fn new<F>(function: F)
where
F: Fn() + Clone,
{
let f = function.clone();
f();
}
new(||{});
这里限定了 F 必须是一个 Fn...
erio.hashnode.dev1 min read