有没有更优雅的方法来使用默认字符串解包 Option<Cookie>?
Is there a more elegant way to unwrap an Option<Cookie> with a default string?
我想打开 cookie 或 return 一个空的 &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_default
加map
,你想要的是提取一个String
值,如果做不到就用默认值。订单事项:
let timezone: String = cookie.map(|c| c.value().to_string()).unwrap_or_default();
我想打开 cookie 或 return 一个空的 &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_default
加map
,你想要的是提取一个String
值,如果做不到就用默认值。订单事项:
let timezone: String = cookie.map(|c| c.value().to_string()).unwrap_or_default();