【发布时间】:2015-03-06 02:02:02
【问题描述】:
在 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类型没有专门化
【问题讨论】: