例如
raw_vec.rs
:
pub struct RawVec<T, A: AllocRef = Global> {
ptr: Unique<T>,
cap: usize,
alloc: A,
}
我可以看到
Global
是一个实现 AllocRef
特征的结构。如果我不得不猜测这是一种进一步限制“A”可以采用的实现的方法,那么为什么还需要“A”泛型类型呢?将字段 alloc
定义为 Global
似乎更简单。
这到底是什么意思?我很惊讶我在 Rust 书籍中找不到任何解释。我很欣赏有关该主题的任何文档链接。
这是一个default泛型类型。除非您在具体实现中明确指定另一个,否则它将被使用。 rust 书中提到过:
当我们使用泛型类型参数时,我们可以指定一个默认的具体参数 type 为泛型类型。这消除了对实施者的需要 如果默认类型有效,则指定具体类型的特征。这 为泛型类型指定默认类型的语法是
声明泛型类型时。<PlaceholderType=ConcreteType>