Обхвати в 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: Отпечатване на стойности от затворен обхват с използване на входящ цикъл

 // 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 цикъл, за да видим какви стойности съдържа диапазонът. За да научите повече за включените цикли, посетете Swift for-in loop.

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

2. Половин отворен обхват (долна граница …

Диапазоните, създадени с помощта на оператора на половин отворен диапазон, се наричат ​​полуотворени диапазони. Той включва всички стойности от долната до горната граница, но изключва стойността на горната граница.

Пример 2: Отпечатване на стойности на половин отворен диапазон с използване на цикъл за включване

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

Когато стартирате програмата, изходът ще бъде:

 12 

В горния пример използвахме цикъл 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 // Това е валиден диапазон. Долната / горната граница може да съдържа отрицателна стойност, но трябва да важи за горното твърдение.
  • Можем да итерираме над обхвата (с изключение на едностранния диапазон), като използваме цикли за включване.
  • Също така можем да използваме оператор на диапазон за достъп до елементи на масив.

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