如何为 gtk 调用创建 "if-let" 块?
How do I create an "if-let" block for a gtk call?
我正在尝试创建一个使用 gtk 在桌面上显示 window 的应用程序。我试图通过使用“if-let”而不是使用“unwrap()”调用来改进代码的错误处理。现在的代码是:
sender.send(AppEvent::QUIT).unwrap();
并希望将其变成一个 if-let 块
if let Some(<need_help_here>) = sender.send(AppEvent::QUIT);
我在 部分需要帮助。 send
函数定义为
pub fn send(&self, t: T) -> Result<(), mpsc::SendError<T>>
块应该是
if Err(e) = sender.send(AppEvent::QUIT) {
println!("{:?}", e);
}
由于函数 returns 是 Result
而不是 Option
,您需要匹配 Ok(...)
,而不是 Some(...)
:
if let Ok(_) = sender.send(AppEvent::QUIT) {
println!("send successuful");
} else {
println!("send failed");
}
请注意,_
会丢弃成功“值”,因为它始终是 ()
,一个不包含任何信息的无效“单位”值。 Ok(())
也可以。
我正在尝试创建一个使用 gtk 在桌面上显示 window 的应用程序。我试图通过使用“if-let”而不是使用“unwrap()”调用来改进代码的错误处理。现在的代码是:
sender.send(AppEvent::QUIT).unwrap();
并希望将其变成一个 if-let 块
if let Some(<need_help_here>) = sender.send(AppEvent::QUIT);
我在 send
函数定义为
pub fn send(&self, t: T) -> Result<(), mpsc::SendError<T>>
块应该是
if Err(e) = sender.send(AppEvent::QUIT) {
println!("{:?}", e);
}
由于函数 returns 是 Result
而不是 Option
,您需要匹配 Ok(...)
,而不是 Some(...)
:
if let Ok(_) = sender.send(AppEvent::QUIT) {
println!("send successuful");
} else {
println!("send failed");
}
请注意,_
会丢弃成功“值”,因为它始终是 ()
,一个不包含任何信息的无效“单位”值。 Ok(())
也可以。