我有一个var
类型ArrayBuffer
.
var selected = new ArrayBuffer[Component](0)
我想从中提取满足给定条件的第一个元素.
var res = selected.filter(_.node == neighbour)(0)
我想要类似上面这一行的东西,但是如果没有元素满足那个条件,我想res
成为null
.相反,代码抛出错误.
如何获得满足条件的第一个元素或null
?
首先,使用find
而不是过滤器,它将返回第一个过滤器Option
.然后使用orNull
获取值或null
缺少值:
val res = selected.find(_.node == neighbour).orNull
或者你可以使用filter
,headOption
和orNull
val res = selected.filter(_.node == neighbour).headOption.orNull
作为处理时的一种强制性注释null
:使用Option
而不是null
scala惯用和推荐的方式.