有时我会看到大段的 Scala 代码,其中包含多个嵌套级别的条件和匹配,使用显式 return 退出函数会更加清晰。
避免那些显式的 return 语句有什么好处吗?
A return
may be通过抛出异常来实现,所以它may have与声明方法结果的标准方式相比,有一定的开销。 (感谢 Kim Stebel 指出,情况并非总是如此,甚至可能不是经常如此。)
Also, a return
闭包将从该方法返回其中定义了闭包,而不仅仅是来自闭包本身。这使得它对此很有用,但对于从闭包返回结果却毫无用处。
上面的一个例子:
def find[T](seq: Seq[T], predicate: T => Boolean): Option[T] = {
seq foreach { elem =>
if (predicate(elem)) return Some(elem) // returns from find
}
None
}
如果你还是不明白的话elem => if (predicate(elem)) return Some(elem)
是方法apply
实现的匿名对象的Function1
并传递给foreach
作为参数。消除return
从中,它不会起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)