java Scala:检查列表是否为空
在用Java编写了10年的代码之后,我对Scala还是个新手。仍在掌握函数式编程。 如何检查列表是否为空? 代码如下所示:
val filterList = filters.map { filter =>
//some operations
}
//其他功能
filterList.foldLeft(true)((result1, result2) => {
现在,如果filters
为null,那么filterList
也将为null
# 1 楼答案
val filterList = if(filters == null) Seq.empty[SomeType] else filters.map {...}
但是,您应该尝试确保它永远不会为null,因为我们试图避免Scala中的null变量。使用选项[T]type,或者使用空集合
# 2 楼答案
如果
filters
是null
(这不同于为空),那么这表示一些相当粗心的编程,但它可以被处理现在
filterList
是Option[X]
类型,其中X
是filters
的集合类型。注意,第一个map
是打开集合上的Option
和第二个map
映射,除非filters
是null
,否则第二个map
永远不会被调用,整个结果是None