将getOrElse与forall混合

CRT

我定义了一个选项:

val names : Option[Seq[String]] = Option(Seq("Bob", "Alice", "Mike"))
names.get.forall(m => Seq("Bob").contains(m))

布尔值=否

但是,我想用getOrElse代替它以避免NPE。以下无效。

names.getOrElse.forall(m => Seq("Bob").contains(m))

错误:value forall不是对象的成员

安德烈(Andrey Tyukin)

您可能想要先将map内部序列Option转换为布尔值,然后getOrElse是最终结果,以提供默认的布尔值。

names.map(_.forall(m => Seq("Bob").contains(m))).getOrElse(false)

顺便说一下,内部lambda也可以缩写为:

names.map(_.forall(Seq("Bob").contains)).getOrElse(false)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章