游乐场显示出奇怪的执行次数

时间:2018-09-18 09:03:19

标签: swift-playground

let intArray = [5]
intArray.allSatisfy{$0<0} //false, of course, but why 2 times?

据我所知,没有更多的运算符...

1 个答案:

答案 0 :(得分:1)

它不是在告诉您该块被执行了多少次,而是在那一行上调用了多少个输出。由于该块返回false,而函数allSatisfy返回false,因此1行中有2个输出。您会注意到,无论数组的大小如何,您都将获得相同的值,并且如果您扩展代码,即

intArray.allSatisfy {
    $0 < 0
}

您没有看到 2次

操场似乎并没有为作为参数传递的闭包/函数的执行提供计数器,而是仅为常规的for循环提供了计数器。