Rust 中 Result 中的“T”代表什么?

2023-12-02

官方文档做了很多参考T:

enum Result<T, E> {
    Ok(T),
    Err(E),
}

我认为这些是占位符缩写。尽管E应该代表“错误”,我不确定是什么T代表。


这是通用的命名约定type.

Rust 中的泛型类型通常用单个大写字母命名。这non_camel_case_typeswarning 强制名称以大写字母开头,但这只是一个警告,没有什么可以阻止您以其他方式命名。

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(使用前将#替换为@)

Rust 中 Result 中的“T”代表什么? 的相关文章

随机推荐

  • 在 React 组件中从 Behance API 加载数据

    我正在尝试通过他们的 API 加载 Behance 项目数据 无论是本地主机还是产品 我都会收到以下错误 Fetch API 无法加载 XXX 对预检请求的响应未通过访问控制检查 请求的资源上不存在 Access Control Allow
  • 如何在 C# 中检查套接字是否已连接/断开?

    如果其他主机在断开连接时没有向您发送数据包 例如 因为它不正常地断开连接 如何检查网络套接字 System Net Sockets Socket 是否仍然连接 As 保罗 特纳回答了Socket Connected在这种情况下不能使用 您需
  • ExpressJS:如何使用参数重定向 POST 请求

    我需要将 Node js 服务器的所有 POST 请求重定向到远程服务器 我尝试执行以下操作 app post function req res res redirect http remoteserver com req path 重定向
  • Javascript 根据星期几隐藏/显示 div?

    我正在尝试创建一个动态页面 根据一周中的某一天更改内容 我以为我有解决方案 但我似乎无法使其发挥作用 div div
  • 重新声明 JavaScript 变量

    In this教程里写着 If you redeclare a JavaScript variable it will not lose its value 为什么要重新声明变量 在某些情况下实用吗 谢谢 这只不过是提醒您 如果您这样做 v
  • 主窗口 DataContext StackOverflowException

    我知道这可能听起来很疯狂 但为了我的理解 你会如何解释这个设置Window DataContext to MainWindow结果出现此错误 引发了 System StackOverflowException 类型的异常
  • LINQDataSource - 查询多个表?

    我有一个数据库 并且创建了一个 DBML Linq to SQL 文件来表示该数据库 我创建了一个新的 aspx 页面 并在其上放置了 linqdatasource 和 formview 控件 当我配置 linqdatasource 时 它
  • 在代码隐藏的 asp:image 中显示数据表中的图像

    我有一个数据表 它是从 1 行选择语句的结果集中填充的 通过 SQL Server 2008 中的存储过程 它包含一个Image我在其中存储图像的键入列 我有一个asp image在 aspx 页面上进行控件 我想将图像设置为该数据表的相应
  • 如何使用陀螺仪从加速度计仅获取线性加速度?

    我的房间地板上有一辆小型遥控车 为了简单起见 我们假设它沿着 x 轴移动 现在 地板看起来很平坦 但每个表面都有非常微小的凹凸不平 因此 每当汽车不完全平坦时 因为它处于起始位置 或者换句话说 每当汽车有哪怕是最轻微的倾斜时 从加速度计获得
  • 多选列表框

    我的表单上有一个列表框 它可以很好地满足我想要做的事情 我想要编辑表单上的项目 这意味着填充列表框 然后选择相关项目 我的列表框包含项目尺寸列表 我想选择属于正在编辑的项目的尺寸 请有人给我一些指点 I tried me lstItemSi
  • 拟合 RNN LSTM 模型时出错

    我正在尝试使用以下代码创建用于二元分类的 RNN LSTM 模型 alldataset np loadtxt FinalKNEEALL txt delimiter num classes 2 num of sam alldataset sh
  • Spring 捕获index.html 的所有路由

    我正在为基于react的单页应用程序开发一个spring后端 其中我使用react router进行客户端路由 除了index html页面之外 后端还提供路径上的数据 api 为了提供我的index htmlsrc main resour
  • 如何处理 UWP 按下的后退按钮

    我曾经在 Windows Phone 8 1 XAML 中使用硬件按钮 API 但是 在 UWP 中 某些设备没有后退按钮 如何适应新的应用模式 稍微解释一下答案 你可以使用系统导航管理器 of Windows UI Core名称空间 对于
  • .NET Core 3.1 Web 应用程序与 React - 如何防止基于 Active Directory 组的访问

    我有一个 NET Core 3 1 Web 应用程序 其中包含使用 Windows 身份验证的 React 当用户输入他们的 Active Directory 凭据时 我想在允许访问 React 应用程序之前验证他们属于特定的 Active
  • ember.js 中的多个动态段

    我目前的路线定义如下 App Router map function this resource players path page id function this resource player path player id 我的想法是
  • 记录用户登录,以便报告客户端超出许可证数量

    我是商业 Windows 应用程序 c 的首席开发人员 一项新要求是跟踪滥用许可证的客户 例如 假设客户购买了 10 个用户许可协议 即在任何给定时间有 10 个并发用户 我需要能够在回顾历史记录时报告客户同时登录的用户数超过 10 的情况
  • 用户输入到二维数组中

    我对 C 完全陌生 我想要简单的代码来根据用户输入创建矩阵 E G int matrix1 new int 2 2 now using input i d like to add integers into the array matrix
  • 创建一个构建过程模板,该模板除了将所有文件复制到另一个目录外什么也不做

    我想在 TFS 2012 Express 中创建一个构建定义 它将简单地将项目源树中的所有文件复制到驱动器上的另一个文件夹中 只是强调 我不希望构建输出转到另一个目录 我希望源文件本身 原因是我让 IIS 指向特定文件夹 并且我希望构建将最
  • 在 django-webodt 中使用可变图像

    有人使用吗django webodt 浏览文档 我找不到有关在文档中使用图像的任何内容 我想在 ODT 文档中插入 可变 图像 ImageField 这可能吗 我正在使用 OpenOffice 后端 我不知道这是否适合你 我使用pod在我的
  • Rust 中 Result 中的“T”代表什么?

    官方文档做了很多参考T enum Result