没有提供任何性能上的好处
forEach。实际上,如果您查看源代码,该
forEach函数实际上只是执行
for-
in。对于发行版,此功能相对于简单使用的性能开销
for-
in自己并不重要,尽管对于调试版,这会导致明显的性能影响。
的主要优势
forEach时,你正在做的函数式编程实现,你可以把它添加到的功能调用链,而无需事先结果保存到一个单独的变量,如果你使用你需要
for-
in语法。因此,代替:
let objects = array.map { ... } .filter { ... }for object in objects { ...}您可以改为使用功能性编程模式:
array.map { ... } .filter { ... } .forEach { ... }结果是功能代码更简洁,语法噪音更少。
FWIW,Array,Dictionary和Sequence的文档都使我们想起了引入的限制
forEach,即:
您不能使用
break或continue语句退出body关闭的当前调用或跳过后续调用。 return在body闭包中使用该语句将仅从当前对的调用退出body,而不从任何外部范围退出,并且不会跳过后续调用。



