Последовательность (range) представляет набор значений, который определяется начальной и конечной точкой. Есть два способа определения последовательности с помощью специальных операторов:
...: этот оператор принимает начальное и конечное значения последовательности и создает набор значений, который включает оба значения
let range = 1...5 // 1 2 3 4 5
Таким образом, с помощью выражения 1...5
будет создаваться последовательность 1 2 3 4 5. При создании
последовательности используется в качестве шага число 1, которое добавляется к предыдущему значению.
Также последовательность может идти в обратную сторону, если начальное значение меньше конечного, то есть применяется шаг -1:
let range = -5 ... -1 // -5 -4 -3 -2 -1
..<: этот оператор также принимает начальное и конечное значения последовательности и создает набор значений, который не включает конечное значение.
Последовательности имееют ряд методов, рассмотрим некоторые из них.
Метод reversed() возвращает перевернутую наоборот последовательность:
let range = 5 ... 8 // 5 6 7 8 let inv = range.reversed() for val in inv { print(val) } // 8 // 7 // 6 // 5
Метод contains() позволяет проверить наличие элемента в последовательности. Если элемент присутствует, то метод возвращает true:
let range = 5 ... 8 // 5 6 7 8 print(range.contains(6)) // true print(range.contains(9)) // false
Метод start(with:) позволяет проверить, начинается ли последовательность с подпоследовательности, которая передается через параметр with:
let range = 5 ... 8 // 5 6 7 8 let st1 = range.starts(with: 1...5) // false let st2 = range.starts(with: 5...7) // true
Метод overlaps возвращает true, если две последовательности хотя бы частично совпадают:
let range = 5 ... 8 // 5 6 7 8 range.overlaps(3...9) // true range.overlaps(9...19) // false