scala - 将列表转换为选项(如果已填充)

标签 scala

我有一个方法可以将列表转换为对象的Option,如果列表为空,则可以转换为None

def listToOption(myList: List[Foo]): Option[Bar] = {
  if(myList.nonEmpty) Some(Bar(myList))
  else None
}

case class Bar(fooList: List[Foo]) {}


由于某种原因,我的解决方案感觉不太好,而不是Scala方式。看来我应该能够在List上使用一种方法来执行这种操作,但是我无法将其包裹住。

有没有更像Scala的方式来做到这一点?

最佳答案

Lee的回答很好,但是我认为这与意图更加明确:

Option(myList).filter(_.nonEmpty).map(Bar)

关于scala - 将列表转换为选项(如果已填充),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28244262/

相关文章:

scala - 什么是 Akka Streams 中的 Flow#join

scala - 模式匹配 "return"值

scala - SBT Native Packager - 如何检索库依赖项并将其存储为包的一部分?

scala - Scala 项目中使用 sbt 与 maven 的优缺点

scala - Scala 中是否有可能 "curry"更高种类的类型?

类中泛型类型的Scala可变数量

scala - Apache 弗林克 : Creating a Lagged Datastream

scala - 模拟 SparkSession 进行单元测试

python - 在 map 中创建 Spark Row

scala - 没有else的scala if语句的返回类型是什么