视频地址
头条地址:https://www.ixigua.com/i6765442674582356483
B站地址:https://www.bilibili.com/video/av78062009?p=1
网易云课堂地址:https://study.163.com/course/introduction.htm?courseId=1209596906#/courseDetail?tab=1
讲解内容
1、Option 是标准库定义的一个枚举。
enum Option<T> {
Some(T),
None,
}
2、使用例子
let some_number = Some(5);
let some_string = Some("a string");
let absent_number: Option<i32> = None;
let x: i8 = 5;
let y: Option<i8> = Some(5);
let sum = x + y; //error,因为类型不一样
3、使用Option主要是用来对空值进行处理的,在rust里面就必须将空值放入Option,因此能减少bug
4、匹配
fn plus_one(x: Option<i32>) -> Option<i32> {
match x {
None => None,
Some(i) => Some(i + 1),
}
}
let five = Some(5);
let six = plus_one(five);
let none = plus_one(None);
以下代码错误,因为匹配没有处理完
fn plus_one(x: Option<i32>) -> Option<i32> {
match x {
Some(i) => Some(i + 1),
}
}