rust - 有没有更优雅的方法来用默认字符串解开 Option<Cookie> ?

标签 rust option unwrap

我想打开 cookie 或返回一个空的 &str什么时候None :

let cookie: Option<Cookie> = req.cookie("timezone");

// right, but foolish:
let timezone: String = match cookie {
    Some(t) => t.value().to_string(),
    None => "".into(),
};
这是一个错误:
let timezone = cookie.unwrap_or("").value();

最佳答案

您可以使用 unwrap_or_defaultmap ,你要的是提取一个String值,如果无法完成,则使用默认值。订单事项:

let timezone: String = cookie.map(|c| c.value().to_string()).unwrap_or_default();
Playground

关于rust - 有没有更优雅的方法来用默认字符串解开 Option<Cookie> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63185477/

相关文章:

server - 如何从 actix-web 中间件返回早期响应?

javascript - 用php和mysql链接选择框

xcode - GoogleAnalytics - 快速错误

ios - Swift:展开可选项和 NSNull

visual-studio-code - 为什么 `cargo build` 无法在 VS Code 中编译 structopt-derive?

json - 如何在不丢失任何值的情况下反序列化具有重复键的JSON?

rust - 为什么 Mio 的民意调查针对用户生成的事件触发了两次?

ajax - 使用自定义 HTTP header 发送跨域请求时禁用预检选项请求

scala - 为什么 headOption 更快

swift - 为什么要展开一个不能为 nil 的变量?