一、let模式匹配
在其它一些语言中,let x = 5 之类的语句,仅仅只是赋值语句。但是在rust中,可以换个角度理解,认为5这个值匹配到了x变量。...("{},{}",a,b);
上面的示例,表示(1,3)这个元组,匹配(a,b)这一组变量,即a=1, b=3,类似的,struct也可以这样匹配:
struct Point {
x: i32,...("others")
}
关于“_”,还有一些小技巧,如果只声明1个变量,不使用,rust编译器会警告:
上图的提示,已经给出建议,可以加_,即改成let _x=10,就不会报警了。...另外_在模式匹配中,还可以避免所有权转移:
let s = Some(String::from("hello"));
//由于_不关注值,所以s的所有权不会move到_
if let...("p中的x,y匹配到{},{}", x, y),
_ => println!("others"),
}