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

Is there a more elegant way to unwrap an Option<Cookie> with a default string?

我想打开 cookie 或 return 一个空的 &strNone:

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