我对锈病很陌生。
我用axum做路由器。
下面的代码中有避免双重unwrap()的方法吗?
let cookies = req
.headers()
.get("Cookie")
.map(|c| c.to_str().unwrap_or(""))
.unwrap_or("");如果没有cookie,我需要cookies作为String或&str或空字符串。
发布于 2022-09-15 16:29:06
您可以将Option::and_then与Result::ok结合使用
let cookies = req
.headers()
.get("Cookie")
.and_then(|c| c.to_str().ok())
.unwrap_or("");Option::and_then是一种将Option链接在一起的方法。如果返回的Option是Some,它将自动展开它。
Result::ok是将Result转换为Option的一种方法。如果Result是Ok(value),它将返回Some(value),否则返回None。
https://stackoverflow.com/questions/73734447
复制相似问题