Проверка работоспособности: извлечение кода из программы прерываний работы программы - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть цикл for, приведенный ниже:

func test(_ fourHundredYears: [CountPatternPair]) {

    // Iterate over `CountPatternPairs` containing hundred-year `CountPatternPairs`
    for hundredYearCPP in fourHundredYears {

        // Do the below as many times as indicated by the count in the `CountPatternPair`
        for _ in 1 ... hundredYearCPP.0 {

            // Iterate over `CountPatternPairs` containing four-year `CountPatternPairs`
            for fourYearCPP in (hundredYearCPP.1 as! [CountPatternPair]) {

                // Do the below as many times as indicated by the count in the `CountPatternPair`
                for _ in 1 ... fourYearCPP.0 {

                    // Iterate over `CountPatternPairs` containing year `CountPatternPairs
                    for yearCPP in (fourYearCPP.1 as! [CountPatternPair]) {

                        // Do the below as many times as indicated by the count in the `CountPatternPair`
                        for _ in 1 ... yearCPP.0 {

                            // Iterate over each month in the array element of the `CountPatternPair`
                            for month in (yearCPP.1 as! [[DayTotalPair]]) {

                                // Iterate over each `DayTotalPair` in each month
                                for dtp in month {

                                    oeod.append(dtp.1, over: dtp.0)

                                    i += dtp.0

                                    if minLimit.equals(oeod.at(oeod.count - 1)) { return }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

Я написал это чудовище, чтобы проверить некоторую логику с намерением, чтобы, когда логика работала правильно, я реорганизовал ее как рекурсивную функцию длясделать это чище.Я сделал, но рекурсивная версия не работала.Я подумал, что что-то упустил, но в конце концов приостановил, потому что всю жизнь не мог понять, что это было.Продолжая тестирование, я решил извлечь часть циклической логики в свои собственные функции, чтобы сделать ее чище.НЕ ДОБАВЛЯЕТ ЛЮБУЮ НОВУЮ ЛОГИКУ.И из того, что мне кажется, не меняется порядок выполнения какой-либо логики.

Но, к моему ужасу, та же самая функция, преобразованная в отдельные функции, также не работала.Прям копирую и вставляю его, и все равно не работает .Попытка использования функции extract to в Xcode на случай, если моя копия и вставка сломали ее, также не сработали.

Может кто-нибудь взглянуть на нижеприведенную версию приведенного выше кода, чтобыпосмотреть, есть ли что-то, что могло бы привести к тому, что логика выполнялась бы не так, как указано выше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...