当前位置: 首页 > 知识库问答 >
问题:

为什么使用空结果作为回报?

乐正瑞
2023-03-14

我经常看到函数或方法返回Result

fn f() -> Result<(), Error> {
    Ok(())
}

换句话说,这种返回不会返回任何内容或错误。为什么使用会导致这种情况,而不是一种选择?我认为这个选项更合适,因为在我们的示例中,它实际上不返回任何值或值——无或错误。

fn f() -> Option<Error> {
    None
}

共有1个答案

陶英纵
2023-03-14

结果代表成功或失败<代码>选项表示任何可选值。当你试图表示成功或失败时,即使你可以使用选项结果也更合适。

因为Result是失败替代方案的类型,所以它也更容易用于检查失败,例如运算符:

fn read_int() -> Result<u32, ReadIntError> {
    let mut buf = [0_u8; 10];
    read_line(&mut buf)?;  // <-- can’t do this if read_line returns
                           // Option<ReadError>
    Ok(parse_int(&buf)?)
}
 类似资料:
  • 问题内容: 在Web Api中返回任何结果之前,我禁用了EF5中的延迟加载和代理创建。一切正常。但是,当我开始尝试获取其他实体时,一些JSON对象如下所示: 这是什么这是包含在结果列表中? 问题答案: 它来自JSON.NET序列化器。它保留对象引用。看一下。我猜想您的对象图中有一些循环引用,并且JSON.NET最好是在不崩溃的情况下不遗余力地序列化此EF结构(这是大多数JSON序列化程序将要做的事

  • 我有以下表格结构: 1-课程(course_id、course_nam、语言、course_price、create_date、average_rating、course_description、certifica_price、course_creator_id) 2-学生(学生证、钱包) 3-折扣(折扣id、折扣课程id、允许的许可课程id、开始日期、结束日期、百分比) 4-报名(student

  • 本文向大家介绍Math.min() < Math.max() 返回结果是什么?为什么?相关面试题,主要包含被问及Math.min() < Math.max() 返回结果是什么?为什么?时的应答技巧和注意事项,需要的朋友参考一下 返回,因为返回,返回。 猜测的实现方式大致如下: 接受不定项参数,当参数只有一个的时候,例如,那么这个需要和(js中最小的数)进行比较,所以结果返回,哪怕传入的值再小,单个

  • 本文向大家介绍当C#中的结果为空时,LINQ返回什么?,包括了当C#中的结果为空时,LINQ返回什么?的使用技巧和注意事项,需要的朋友参考一下 语言集成查询(LINQ)是基于直接将查询功能集成到C#语言中的一组技术的名称。 您可以在C#中为SQL Server数据库,XML文档,ADO.NET数据集以及支持IEnumerable或通用IEnumerable <T>接口的任何对象集合编写LINQ查询

  • 在使用lambda表达式返回字符串列表时,我得到了以下字符串: null 和更多的建议。但没有答案对我有帮助。 有人知道这段代码出了什么问题吗?

  • 我有一个动作,生成一个密码重置链接,并电子邮件给用户 是什么导致web服务器决定内容不变并返回HTTP 304? 我知道有个办法 https://stackoverflow.com/a/18620970/141172 注意:我在上面将localhost更改为local,因为StackOverflow不允许发布包含localhost的链接:-) 浏览器是Internet Explorer10。