如何将空字符串解析为None?

将空字符串解析为 aNone而不是 a的惯用方法是Some("")什么?

let handle: Option<String> = x.get(0).and_then(|v| v.parse().ok());

回答

如果你从一个开始String

let string = String::new();
let handle = Some(string).filter(String::is_empty);

从 Rust 1.50 开始,您也可以使用bool::then(感谢 sebpuetz)

let handle = string.is_empty().not().then(|| string);
// or
let handle = (!string.is_empty()).then(|| string);

使用您的代码:

let handle = x.get(0)
    .and_then(|v| v.parse().ok())
    .filter(String::is_empty);

文档

  • 字符串::is_empty
  • 选项::过滤器
  • 布尔::然后

以上是如何将空字符串解析为None?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>