我的var
类型ArrayBuffer
。
var selected = new ArrayBuffer[Component](0)
我想从中提取满足给定条件的第一个元素。
var res = selected.filter(_.node == neighbour)(0)
我想要类似上面一行的内容,但如果没有元素满足该条件,我希望res
为null
。相反,代码会抛出错误。
如何获得满足条件的第一个元素或null
?
答案 0 :(得分:8)
首先,使用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惯用和推荐方式。