Rust 在match语句中重用匹配的变量
我正在寻找一种处理这种情况的好模式。在检查给定变量的类型是否正确/是否包含我期望的类型后,我希望继续执行进一步的操作。问题是我想重用匹配的变量Rust 在match语句中重用匹配的变量,rust,pattern-matching,match,borrow-checker,ownership,Rust,Pattern Matching,Match,Borrow Checker,Ownership,我正在寻找一种处理这种情况的好模式。在检查给定变量的类型是否正确/是否包含我期望的类型后,我希望继续执行进一步的操作。问题是我想重用匹配的变量 fn proceed(stream: std::net::TcpStream) { // ... } fn main() { let mut stream = TcpStream::connect("127.0.0.1:7878"); match stream { TcpStream =>
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")
}
}
它给出了移动后使用的
变量
错误。通过使用move创建闭包进行盲修复会导致更多级联错误。在这种情况下使用match
语句有什么好处吗?您可以在结果的变量上进行模式匹配:
使用std::net::TcpStream;
fn继续(流:TCP流){
待办事项!()
}
fn示例(){
让mut stream=TcpStream::connect(“127.0.0.1:7878”);
匹配流{
正常(tcp)=>继续(tcp),
Err(Err)=>println!(“buuu”),
}
}
谢谢您的帮助,查看返回类型是误导性的时间:)@ MIKE79495如果我的答案解决了你的问题,请考虑投票并接受它(通过点击灰色评分标记下面的答案得分),谢谢!