Rust基础拾遗--辅助功能

Rust基础拾遗

  • 前言
  • 1.错误处理
    • [1.1 panic](#1.1 panic)
    • [为什么是 Result](#为什么是 Result)
  • [2. create与模块](#2. create与模块)
  • [3. 宏](#3. 宏)
  • [4. 不安全代码](#4. 不安全代码)
  • [5. 外部函数](#5. 外部函数)

前言

通过Rust程序设计-第二版笔记的形式对Rust相关重点知识进行汇总,读者通读此系列文章就可以轻松的把该语言基础捡起来。


1.错误处理

Rust 中的两类错误处理:panic 和 Result。

  • 普通错误使用 Result 类型来处理。Result 通常用以表示由程序外部的事物引发的错误,比如错误的输入、网络中断或权限问题。
  • panic 针对的是另一种错误,即那种永远不应该发生的错误。

1.1 panic

当程序遇到下列问题的时候,就可以断定程序自身存在 bug,故而会引发 panic:

  • 数组越界访问;
  • 整数除以 0;
  • 在恰好为 Err 的 Result 上调用 .expect();
  • 断言失败。

panic!() 是一种宏,用于处理程序中出现错误的情况。

如果panic真的发生了,那么该怎么办呢?

Rust 为你提供了一种选择。Rust 既可以在发生 panic 时展开调用栈,也可以中止进程。

为什么是 Result

现在我们已经足够了解为何 Rust 会优先选择 Result 而非异常了。以下是此设计的几个要点。

  • Rust 要求程序员在每个可能发生错误的地方做出某种决策,并将其记录在代码中。这样做很好,否则容易因为疏忽而无法正确处理错误。

  • 最常见的决策是让错误继续传播,而这用单个字符 ? 就可以实现。因此,错误处理管道不会像在 C 和 Go 中那样让你的代码混乱不堪,而且它还具有可见性:在浏览一段代码时,你一眼就能看出错误是从哪里传出来的。

  • 是否可能出错是每个函数的返回类型的一部分,因此哪些函数会失败、哪些不会失败非常清晰。如果你将一个函数改为可能出错的,那么就要同时更改它的返回类型,而编译器会让你随之修改该函数的各个下游使用者。

  • Rust 会检查 Result 值是否被用过了,这样你就不会意外地让错误悄悄溜过去。

  • 由于 Result 是一种与任何其他数据类型没有本质区别的数据类型,因此很容易将成功结果和错误结果存储在同一个集合中,也很容易对"部分成功"的情况进行模拟。

2. create与模块

3. 宏

4. 不安全代码

5. 外部函数

相关推荐
fqbqrr13 小时前
2510rs,rust清单1
rust
熊猫钓鱼>_>13 小时前
Rust语言特性深度解析:所有权、生命周期与模式匹配之我见
算法·rust·软件开发·函数·模式匹配·异步编程·质量工具
fqbqrr13 小时前
2510rs,rust清单2
rust
Source.Liu13 小时前
【pulldown-cmark】 初学者指南
rust·markdown·pulldown-cmark
呼啦啦嘎嘎14 小时前
《100 Exercises To Learn Rust》练习笔记
rust
Amos_Web15 小时前
Rust实战课程--网络资源监控器(初版)
前端·后端·rust
WujieLi1 天前
初识 Vite+:一文了解 Rust 驱动的新一代前端工具链
javascript·rust·vite
std860211 天前
Rust 与 Python – 这是未来的语言吗?
开发语言·python·rust
std78792 天前
Rust 与 Go – 比较以及每个如何满足您的需求
开发语言·golang·rust
Amos_Web2 天前
Rust实战教程--文件管理命令行工具
前端·rust·全栈