繁体   English   中英

等号在特征绑定中意味着什么?

[英]What does equal sign mean in a trait bound?

例如在 raw_vec.rs 中:

pub struct RawVec<T, A: AllocRef = Global> {
    ptr: Unique<T>,
    cap: usize,
    alloc: A,
}

我可以看到 Global 是一个实现 AllocRef 特征的结构。

我很惊讶在 rust 书籍中找不到任何解释。 我很欣赏有关该主题的文档的任何链接。

如果我不得不猜测这是一种进一步限制'A'可以采用的impls的方法,那么为什么需要'A'泛型类型呢? 将字段alloc定义为Global似乎更简单。 这只是一个猜测。 澄清赞赏。

谢谢!

它是默认的泛型类型。 除非您在具体实现中明确指定另一个,否则将使用它。 它在rust 书中提到:

当我们使用泛型类型参数时,我们可以为泛型类型指定一个默认的具体类型。 如果默认类型有效,这消除了 trait 实现者指定具体类型的需要。 声明泛型类型时,为泛型类型指定默认类型的语法是<PlaceholderType=ConcreteType>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM