Быстрый поток управления с шагом

В чем разница между двумя функциями шага?

stride(from:to:by) и (from:through:by)

При просмотре руководства Управление потоком с шагом Я обнаружил, что два типа функции шага, насколько мне известно, работают одинаково, я не знаю, в чем разница между ними, поэтому кто-нибудь может объяснить?

Используйте шаг(от:до:по:)

let minutes = 60
let minuteInterval = 5
for tickMark in stride(from: 0, to: minutes, by: minuteInterval) {
    // render the tick mark every 5 minutes (0, 5, 10, 15 ... 45, 50, 55)
}

Использование stride(from:through:by:) вместо этого:

let hours = 12
let hourInterval = 3
for tickMark in stride(from: 3, through: hours, by: hourInterval) {
    // render the tick mark every 3 hours (3, 6, 9, 12)
}

person Gaurang Chokhariya    schedule 16.03.2018    source источник
comment
Замените to на through в первом примере и замените through на to во втором. Обратите внимание на разницу. И читайте документацию. Обратите внимание на разницу.   -  person rmaddy    schedule 16.03.2018


Ответы (1)


stride(from:through:by:):

Возвращает последовательность значений (self, self + stride, self + 2 * stride, … last), где last — это последнее значение в последовательности, меньшее или равное end.

stride(from:to:by:):

Возвращает последовательность значений (self, self + stride, self + 2 * stride, … last), где last — это последнее значение в последовательности, которое меньше end.

Обратите внимание на разницу в жирном тексте.

Это разница между закрытым диапазоном, например [0...10], и открытым диапазоном, например [0..<10].

person rmaddy    schedule 16.03.2018