Rust 学习笔记(13)-if-let
if let 是一个语法糖,它可以简化 match 的写法
if let 是一个语法糖,它可以简化 match 的写法
match允许我们将一个值与一系列的模式相比较,并根据相匹配的模式执行相应代码。
上一节我们学习了Option<T>,这一节我们就来学习下,如何处理Option<T>
Option<T>
|
|
我们之前提到了在Rust中有一个非常常用的枚举 Option,它的原型是如下的样子
|
|
它代表了有值和没有值的情况,成员 None 代表没有值,也就是空值的情况,Some(T) 代表了有值的情况,换句话说 Option<T> 代表了一个可能为空的值
Option<T>枚举是如此有用以至于它甚至被包含在了prelude之中,你不需要将其显式引入作用域。另外,它的成员也是如此,可以不需要 Option:: 前缀来直接使用 Some 和 None。即便如此 Some(T) 和 None 仍是 Option的成员。
这有什么好处或者说什么用处呢?Rust为什么要这么设计它?它和其他语言中的null有什么不同?下面我说说我的见解
本篇是阅读 《Rust 程序设计语言》第6.1章 枚举 而来的结果
枚举是一个很多语言都有的功能,不过不同语言中其功能各不相同,Rust中的枚举允许你通过列举可能的成员(variants)来定义一个类型
枚举主要作用是限制传入或传出的类型,避免出现其他类型,这在Rust中有一个著名的枚举 Option 我们稍后会学习
本篇是阅读 《Rust 程序设计语言》第5.3章 方法语法 而来的结果
之前我们提到过 方法 就是 函数,只不过他是定义在结构体上下文中的,这个就是其他语言中的方法的概念一样,没什么好说的