我正在寻找一种处理这种情况的好模式。我想在检查给定的变量是否为正确的类型/包含我所期望的内容之后,继续进一步的操作。问题是我想重用匹配的变量。
fn proceed(stream: std::net::TcpStream) {
// ...
}
fn main() {
let mut stream = TcpStream::connect("127.0.0.1:7878");
match stream {
TcpStream => proceed(stream.unwrap()),
Error => println!("buuuu")
}
}
它给出了variable used after move
错误。通过使用移动创建闭包来修复盲目会导致更多的级联错误。在这种情况下使用match
语句会有什么好处吗?
发布于 2021-02-11 00:30:39
您可以在Result
的Ok
变体上进行模式匹配
use std::net::TcpStream;
fn proceed(stream: TcpStream) {
todo!()
}
fn example() {
let mut stream = TcpStream::connect("127.0.0.1:7878");
match stream {
Ok(tcp) => proceed(tcp),
Err(err) => println!("buuuu"),
}
}
https://stackoverflow.com/questions/66147120
复制相似问题