官方文档做了很多参考T
:
enum Result<T, E> {
Ok(T),
Err(E),
}
我认为这些是占位符缩写。尽管E
应该代表“错误”,我不确定是什么T
代表。
这是通用的命名约定type.
Rust 中的泛型类型通常用单个大写字母命名。这non_camel_case_types
warning 强制名称以大写字母开头,但这只是一个警告,没有什么可以阻止您以其他方式命名。
T
是最常见的字母,您经常会在该项目并不关心类型代表什么的情况下经常看到这种情况,但在特定情况下还有一些常用的字母,如下所示:
-
如果类型是错误类型:E
. Example:
fn err(self) -> Option<E>
-
如果类型是谓词:P
. Example:
fn filter<P>(self, predicate: P) -> Filter<Self, P>
where
P: FnMut(&Self::Item) -> bool,
-
如果类型是函数类型:F
, G
, etc. Example:
std::iter::Iterator::for_each<F>(self, f: F)
where
F: FnMut(Self::Item)
-
如果类型是泛型函数的返回类型:R
. Example:
fn with<F, R>(&'static self, f: F) -> R
where
F: FnOnce(&T) -> R,
-
如果该类型是某个映射中的键类型:K
. Example:
fn keys(&self) -> Keys<K, V>
-
如果该类型是某个映射中的值类型:V
. Example:
fn insert(&mut self, key: K, value: V) -> Option<V>
-
如果该类型是一个实现Iterator: I
. Example:
impl<I> Clone for Fuse<I> where
I: Clone,
-
如果该类型是一个实现Read: R
. Example:
fn chain<R: Read>(self, next: R) -> Chain<Self, R>
where
Self: Sized,
-
如果该类型是一个实现Write: W
. Example:
struct BufWriter<W: Write> { /* fields omitted */ }
-
如果该类型是一个实现ToSocketAddrs: A
. Example:
fn connect<A: ToSocketAddrs>(addr: A) -> Result<TcpStream>
-
如果类型是路径(即实现AsRef<
Path>
): P
. Example:
pub fn open<P: AsRef<Path>>(path: P) -> Result<File>
-
其他一切:T
, U
等,通常按字母顺序排列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)