cfanbo / cfanbo.github.io

1 stars 0 forks source link

Rust 中的 Result 与 Option | 学习笔记 #235

Open cfanbo opened 11 months ago

cfanbo commented 11 months ago

https://blog.haohtml.com/posts/rust-result-and-option/

在 Rust 中有两个常用的 enum 枚举类型,分别为 Result 和 Option,本节介绍它们两者各自的使用场景和用法。 这里我们先给出结论 结果 Result 表示 成功 或 失败 选项 Option 表示 有 或者 无 当从本地读取一个文件时,这时候可能读取成功,也有可能由于文件不存在或权限不足导致读取时候,这种场景一般就需要使用 Result;而当从一组数据集中查询指定元素是否存在时,这时有可能存在,也有可能不存在(用None 表示),这时情况就应该选择Option。 由此看到,这两个枚举类型的区别理解起来还是挺简单的,下面我们单独对每一种类型做一下详细的介绍。 结果 Result 定义 enum Result<T, E> { Ok(T), Err(E), } Result<T, E> 类型拥有两个取值: Ok(value) 表示操作成功,并包装操作返回的 value(value 拥有 T 泛类型)。 Err(why),表示操作失败,并包装 why,它(但愿)能够解释失败的原因(why 拥有 E 类型)。 举个例子,这里打开一个文件,如果文件存在则打印文件句柄信息,否则打印错误信息,查看 playground use std::fs::File; fn main() { let greeting_file_result = File::open("hello.txt"); // 返回 Result<T, E> let greeting_file = match greeting_file_result { Ok(file) => file, Err(error) => panic!