如果为空,是否有更短的方法用默认项填充Set

时间:2014-08-06 10:24:54

标签: scala collections functional-programming scala-collections

假设cars列表。

我想仅在设置 为空 时添加Ferrari,并返回最终的设置。

我这样做:

val finalCarsSet = Option(cars) filterNot(_.isEmpty) getOrElse Set("Ferrari") 

使用高阶函数是否有更短的方法?

1 个答案:

答案 0 :(得分:3)

为什么要将列表包装在一个选项中?您可以使用isEmpty

scala> Set()
res0: scala.collection.immutable.Set[Nothing] = Set()

scala> if(res0.isEmpty) Set("Ferrari") else res0
res1: scala.collection.immutable.Set[_ <: String] = Set(Ferrari)

scala> Set("Ferrari", "Porsche")
res2: scala.collection.immutable.Set[String] = Set(Ferrari, Porsche)

scala> if(res2.isEmpty) Set("Ferrari") else res2
res3: scala.collection.immutable.Set[String] = Set(Ferrari, Porsche)

如果你只想用&#34; Ferrari&#34;返回一套,我不能理解你的代码。或者您想将汽车添加到您已有的汽车中。