У меня есть цикл 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
на случай, если моя копия и вставка сломали ее, также не сработали.
Может кто-нибудь взглянуть на нижеприведенную версию приведенного выше кода, чтобыпосмотреть, есть ли что-то, что могло бы привести к тому, что логика выполнялась бы не так, как указано выше?