在Java编写10年之后,我是Scala的新手。仍然掌握功能编程。 如何检查列表是否为空? 代码看起来像这样:
val filterList = filters.map { filter =>
//some operations
}
//其他功能
filterList.foldLeft(true)((result1, result2) => {
现在,如果filters
为空,那么filterList
也将为空。
答案 0 :(得分:9)
如果filters
是null
(不同于空),则表示一些非常粗心的编程,但可以处理。
val filterList = Option(filters).map(_.map { ...
现在filterList
的类型为Option[X]
,其中X
是filters
的集合类型。请注意,第一个map
是打开集合上的Option
和第二个map
地图,除非filters
是null
,然后是第二个{{1}永远不会调用,整个结果是map
。
答案 1 :(得分:2)
val filterList = if(filters == null) Seq.empty[SomeType] else filters.map {...}
但是,您应该尝试确保它永远不会为null,因为我们尝试避免Scala中的空变量。使用Option [T]类型或空集合