Детская площадка показывает странное количество казни - PullRequest
0 голосов
/ 18 сентября 2018
let intArray = [5]
intArray.allSatisfy{$0<0} //false, of course, but why 2 times?

Операторов больше нет, насколько я вижу ...

1 Ответ

0 голосов
/ 18 сентября 2018

Это не говорит вам, сколько раз был выполнен блок, а скорее, сколько выходов было вызвано в этой строке.Поскольку блок возвращает false, а функция allSatisfy возвращает false, это 2 выхода в 1 строке.Вы заметите, что независимо от размера массива вы получите одно и то же значение, и если вы развернете код, то есть

intArray.allSatisfy {
    $0 < 0
}

, вы не увидите 2 раза .

Кажется, что игровые площадки не дают счетчика для выполнения замыканий / функций, переданных в качестве параметров, а только для обычных циклов for.

...