将 Some(List()) 变成 None

dav*_*vid 1 scala list optional

我有可选列表,例如:

val optionalEmptyList = Option(List[String]())

val optionalNonEmptyList = Option(List[String]("1","2"))

我想用 None 替换可选的空列表,同时保持可选的非空列表原样。

我想出了以下解决方案:

optionalEmptyList.flatMap(l => if (l.isEmpty) None else Option(l))

optionalNonEmptyList.flatMap(l => if (l.isEmpty) None else Option(l))

它有效,但似乎令人费解。有没有更简单的解决方案?

Tim*_*Tim 7

optionalEmptyList.filter(_.nonEmpty)
Run Code Online (Sandbox Code Playgroud)