Rust中使用量最大的两种抽象。
- Option
- Result
Option
pub enum Option<T> {
/// No value
None,
/// Some value `T`
Some(T),
}
Option的方法
impl<T> Option<T> {
}
可以看到这是泛型的标准写法。T就是代表泛型。当然你可以写做T,也可以用其他的名称。可以看到这里对Option的泛型T并没有使用Trait限定。我在上一篇提到没有Trait限定的泛型没有意义。那为什么这里会这么写?其实是应用环境不同。
在通常的情况我们根本不需要使用有无这种极为广泛的抽象概念。
Result
而除了有无这种概念外,结果同样是有着一样一种高级概念。
pub enum Result<T, E> {
Ok(T),
Err(E),
}
结果Result这个enum表达的两种可能性的抽象。可行的,错误的。Result普遍应用于错误处理。