最佳答案
在 Rust 1.0之前,我可以使用这种过时的闭包语法编写一个结构:
struct Foo {
pub foo: |usize| -> usize,
}
现在我可以这样做:
struct Foo<F: FnMut(usize) -> usize> {
pub foo: F,
}
那么我创建的 Foo
对象的类型是什么呢?
let foo: Foo<???> = Foo { foo: |x| x + 1 };
我还需要一个推荐人:
struct Foo<'a> {
pub foo: &'a mut FnMut(usize) -> usize,
}
我觉得这个比较慢,因为
FnMut
类型没有专门化