3
我一直在读通过斯卡拉文档和同时通过Option
类撇我看到filter
实现,它看起来像这样:斯卡拉选择滤波器方法怀疑
final def filter(p: A => Boolean): Option[A] =
if (isEmpty || p(this.get)) this else None
为什么我们要检查我们Option
实例是否是空的?这不会导致None
这种方式吗?
我一直在读通过斯卡拉文档和同时通过Option
类撇我看到filter
实现,它看起来像这样:斯卡拉选择滤波器方法怀疑
final def filter(p: A => Boolean): Option[A] =
if (isEmpty || p(this.get)) this else None
为什么我们要检查我们Option
实例是否是空的?这不会导致None
这种方式吗?
||
是短路,所以检查isEmpty
首先确保get
不会在空选项(这将引发异常)上调用。