gpt4 book ai didi

rust - 在match语句内重用匹配变量

转载 作者:行者123 更新时间:2023-12-03 11:34:42 28 4
gpt4 key购买 nike

我正在寻找一种处理这种情况的好模式。我想在检查给定的变量是正确的类型/包含我所期望的之后继续进行进一步的操作。问题是我想重用匹配的变量。

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语句有什么好处吗?

最佳答案

您可以在OkResult变体上进行模式匹配:

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"),
}
}
playground

关于rust - 在match语句内重用匹配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66147120/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com