视频地址
头条地址:https://www.ixigua.com/i6775861706447913485
B站地址:https://www.bilibili.com/video/av81202308/
源码地址
github地址:https://github.com/anonymousGiga/learn_rust
讲解内容
1、模式有两种:refutable(可反驳的)和 irrefutable(不可反驳的)。能匹配任何传递的可能值的模式被称为是不可反驳的。对值进行匹配可能会失败的模式被称为可反驳的。
2、只能接受不可反驳模式的有:函数、let语句、for循环。原因:因为通过不匹配的值程序无法进行有意义的工作。
3、if let和while let表达式被限制为只能接受可反驳的模式,因为它们的定义就是为了处理有可能失败的条件。
4、例子:
let a: Option<i32> = Some(5);
let Some(x) = some_option_value; //失败,因为let是不可反驳的,
//要匹配传递的所有的值,这里无法匹配None的情况
if let x = 5 { //错误,if let接受可反驳的
println!("x = {}", x);
}
网友评论