Диапазоны в Swift (с примерами)

В этой статье вы узнаете о диапазоне, его типе и вариантах использования в Swift.

Диапазон - это интервал значений. Простой пример диапазона - 0,1,2,3,4,5,6,7,8,9, потому что числа идут последовательно от 0 до 9.

Мы можем быстро создать диапазон, используя два оператора диапазона, описанные ниже:

1. Оператор закрытого диапазона (нижняя граница… верхняя граница)

Он включает все значения в интервале (от нижней границы до верхней границы). Он объявляется с помощью оператора (3 точки).

Например: 1… 3 определяет диапазон, содержащий значения 1,2,3

2. Оператор полуоткрытого диапазона (нижняя граница…

Он включает все значения в интервале (от нижней границы до верхней границы), но исключает последнее (верхнюю границу) число. Он объявляется с помощью … <оператора.

Например: 1… <3 определяет диапазон, содержащий значения 1 и 2.

Типы диапазона

1. Закрытый диапазон (нижняя граница… верхняя граница)

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

Пример 1: Печать значений замкнутого диапазона с использованием цикла for-in

 // 1… 3 Defines a range containing values 1, 2 and 3 for value in 1… 3 ( print(value) ) 

Когда вы запустите программу, вывод будет:

 1 2 3 

В приведенном выше примере создается диапазон, содержащий числа от 1 до 3 ( 1… 3). Мы использовали цикл for-in, чтобы увидеть, какие значения содержит диапазон. Чтобы узнать больше о циклах for-in, посетите Swift for-in loop.

Используя цикл for-in, мы видим, что закрытый диапазон содержит все значения в данном диапазоне, включая нижнюю (1) и верхнюю (3) граничные значения.

2. Полуоткрытый диапазон (нижняя граница…

Диапазоны, созданные с использованием оператора полуоткрытого диапазона, называются полуоткрытыми диапазонами. Он включает все значения от нижней до верхней, но исключает значение верхней границы.

Пример 2: Печать значений полуоткрытого диапазона с использованием цикла for-in

 // 1… <3 Defines a range containing values 1,2 for value in 1… <3 ( print(value) ) 

Когда вы запустите программу, вывод будет:

 1 2 

В приведенном выше примере мы использовали цикл for-in, чтобы увидеть, как работает полуоткрытый диапазон.

Вместо того, чтобы печатать все значения, мы можем ясно видеть, что использование оператора полуоткрытия печатает только 1 и 2, и исключает значение верхней границы (т.е. 3).

3. Односторонний диапазон

Односторонний диапазон - это те типы диапазона, которые продолжаются как можно дальше в одном направлении. Его можно создать с использованием как оператора полуоткрытого диапазона, так и оператора закрытого диапазона, но оператор может иметь значение только с одной стороны.

Пример 3: односторонний диапазон меньше 2

 let range =… <2 print(range.contains(-1)) print(range.contains(2)) 

Когда вы запустите программу, вывод будет:

 правда ложь 

В приведенном выше примере создается односторонний диапазон с использованием оператора полуоткрытого диапазона, который содержит любые числа меньше двух.

Чтобы проверить наш результат, мы использовали contains метод. containsМетод просто возвращает , trueесли элемент лежит внутри диапазона в противном случае она возвращает false.

range.contains(-1)проверяет, лежит ли -1 внутри диапазона или нет. Поскольку его односторонний диапазон с верхней границей 2 и -1 <2, он лежит внутри диапазона и print(range.contains(-1))выводится trueна экран.

However, because of half-open range operator, the upper bound value(2) does not contains inside the range. So, range.contains(2) returns false.

Example 4:One-sided range starting from 2

 let range = 2… print(range.contains(100)) print(range.contains(1)) 

When you run the program, the output will be:

 true false 

The above example creates a one sided range using closed operator that contains numbers from 2 to any values greater than 2.

range.contains(100) checks if 100 lies inside the range or not. Since, its one sided range and 100 is greater than 2, it lies inside the range and prints true in the screen.

However, it has a lower bound value (2), so range.contains(1) returns false .

Things to remember

  • Начало диапазона должно быть меньше или равно его концу. В нашем примере (lowerBound… upperBound)значение нижней границы должно быть меньше значения верхней границы. Однако это может быть отрицательное значение.
    Пример:
    3… 1 // фатальная ошибка: невозможно сформировать диапазон с upperBound <lowerBound -3… 1 // Это допустимый диапазон. Нижняя / верхняя граница может содержать отрицательное значение, но должно соответствовать приведенному выше утверждению.
  • Мы можем перебирать диапазон (исключая односторонний диапазон), используя циклы for-in.
  • Мы также можем использовать оператор диапазона для доступа к элементам массива.

Интересные статьи...