<分区>
我正在使用 winit创建一个窗口并通过该窗口获取用户的输入。该窗口创建枚举的变体 Event
并将其传递给“回调函数”(我不确定这有多准确)进行处理。
我正在使用匹配语句来决定如何处理事件:
fn process_event(event: winit::Event) -> winit::ControlFlow /*potentially break EventsLoop and exit*/ {
match event {
winit::Event::WindowEvent { // match against close request event
event: winit::WindowEvent::CloseRequested,
..
} => winit::ControlFlow::Break,
_ => winit::ControlFlow::Continue
}
}
但是,这很快就会变得非常嘈杂。我目前正在将所有不同的情况拆分成函数,这样我就可以使这段代码更具表现力,但最终,模式仍然如此冗长。如果我能给出一个模式来匹配一个名字,那就太好了,我的意思是这样的:
pattern quitEvent =
winit::Event::WindowEvent {
event: winit::WindowEvent::CloseRequested,
..
};
fn process_event(event: winit::Event) -> winit::ControlFlow {
match event {
quitEvent => winit::ControlFlow::Break,
_ => winit::ControlFlow::Continue
}
}
这可能吗?如果我们也可以以“或”的方式为模式组合命名,那就更好了。