我需要知道+
运算符的目的和最后的'static
关键字。我了解'static
指的是生命周期,但是它在此代码中解决了什么目的。
pub trait Group {
type ColumnValue: Sized + Clone + Eq + Hash + 'static;
// ...methods...
}
我从llamadb项目的源文件中提取了此代码文本。
在这种情况下,type X: Y
意味着这X
是带有bounds的某种类型Y
。+
是一种组合边界以使其X
必须满足所有边界的方法。
换句话说,任何impl
用于Group
必须有一个相关的类型ColumnValue
是Sized
和 Clone
能够与 Eq
uatable并 Hash
能和 'static
。
因此,任何使用的代码都T: Group
知道类型的任何内容T::ColumnValue
都可以存储在堆栈(Sized
)上,可以进行克隆,检查是否相等,进行哈希处理并且不存在非'static
生存期要求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句