rust - 我可以匹配一个盒子吗之后仍然使用它吗?
问题描述
在下面的示例中,我必须匹配 a ,以便稍后Box<Event>
重新创建Box
enum Event {
Profile(String)
}
fn send(event: Box<Event>) {
let mut events = Vec::new();
match *event {
Event::Profile(profile_event) => {
events.push(Box::new(Event::Profile(profile_event)));
},
_ => {
//error!("unknown event: {:?}", event);
}
}
}
有没有办法匹配 aBox
并且仍然使用它?
解决方案
问题不在于匹配本身,而在于您正在profile_event
退出枚举变体这一事实。如果你不这样做,它编译得很好:
fn send(event: Box<Event>) {
let mut events = Vec::new();
match *event {
Event::Profile(..) => {
events.push(event)
},
// ...
}
}
推荐阅读
- android - 我正在尝试仅使用耳机在 Android 中发出声音
- arrays - C:接收地址作为输入并将数组值分配给地址时出现分段错误
- php - 数据库(database/db_intranet.sqlite)不存在
- shell - 如何从 shell 脚本调用 marklogic(xqy 文件)的模块?
- ruby-on-rails - Capistrano 部署不提取最新提交
- java - 用于 QR 的 ESC/POS 命令仅打印内容
- c# - 如何避免在 C# 类之前编写命名空间
- python-3.x - 在 matplotlib 中更改单个 ytick 值
- javascript - 带有 Tailwind 和 Emotion 设置的故事书
- excel - 通过下拉列表切换工作表