Gamme in Swift (con esempi)

In questo articolo imparerai a conoscere la portata, il tipo e i casi d'uso in Swift.

Un intervallo è un intervallo di valori. Un semplice esempio di intervallo è 0,1,2,3,4,5,6,7,8,9 perché i numeri sono sequenziali da 0 a 9.

Possiamo creare un intervallo in modo rapido utilizzando due operatori di intervallo descritti di seguito:

1. Operatore di intervallo chiuso (lowerBound… upperBound)

Include tutti i valori nell'intervallo (da lowerbound a upperBound). Viene dichiarato utilizzando l' operatore (3 punti).

Ad esempio: 1… 3 definisce l'intervallo contenente i valori 1,2,3

2. Operatore Half Open Range (lowerBound …

Include tutti i valori nell'intervallo (da lowerbound a upperBound) ma esclude l'ultimo numero (upperBound). Viene dichiarato utilizzando l' … <operatore.

Ad esempio: 1… <3 definisce l'intervallo contenente i valori 1 e 2

Tipi di intervallo

1. Intervallo chiuso (lowerBound… upperBound)

Gli intervalli creati utilizzando l'operatore di intervallo chiuso vengono chiamati intervallo chiuso. Include tutti i valori da lowerbound a upperbound.

Esempio 1: stampa di valori in intervallo chiuso utilizzando il ciclo for-in

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

Quando esegui il programma, l'output sarà:

 1 2 3 

L'esempio precedente crea un intervallo che contiene numeri da 1 a 3 ( 1… 3). Abbiamo utilizzato un ciclo for-in per vedere quali valori contiene l'intervallo. Per saperne di più sui loop for-in, visita Swift for-in loop.

Usando il ciclo for-in, possiamo vedere che l'intervallo chiuso contiene tutti i valori nell'intervallo dato, inclusi i valori limite inferiore (1) e superiore (3).

2. Intervallo semiaperto (lowerBound …

Gli intervalli creati utilizzando l'operatore intervallo semiaperto sono chiamati intervalli semiaperti. Include tutti i valori dal limite inferiore al limite superiore ma esclude il valore del limite superiore.

Esempio 2: stampa di valori di intervallo aperto a metà utilizzando il ciclo for-in

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

Quando esegui il programma, l'output sarà:

 1 2 

Nell'esempio sopra, abbiamo usato il ciclo for-in per vedere come funziona l'intervallo semiaperto.

Invece di stampare tutti i valori, possiamo vedere chiaramente che l'uso dell'operatore semiaperto stampa solo 1 e 2, ed esclude il valore limite superiore (cioè 3).

3. Gamma unilaterale

Gamma unilaterale sono quei tipi di portata che continuano il più possibile in una direzione. Può essere creato utilizzando sia l'operatore semiaperto che l'operatore chiuso ma l'operatore può avere un valore solo su un lato.

Esempio 3: intervallo unilaterale inferiore a 2

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

Quando esegui il programma, l'output sarà:

 vero falso 

L'esempio precedente crea un intervallo unilaterale utilizzando l'operatore di intervallo semiaperto che contiene qualsiasi numero inferiore a due.

Per convalidare il nostro risultato abbiamo utilizzato il contains metodo. Il containsmetodo restituisce semplicemente truese l'elemento si trova all'interno dell'intervallo, altrimenti ritorna false.

range.contains(-1)controlla se -1 si trova all'interno dell'intervallo o meno. Poiché, la sua unilaterale gamma con limite superiore 2, e -1 <2 si trova all'interno della gamma e print(range.contains(-1))uscite truenella schermata.

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

  • L'inizio di un intervallo deve essere minore o uguale alla sua fine. Nel nostro esempio (lowerBound… upperBound), il valore del limite inferiore deve essere inferiore al valore del limite superiore. Tuttavia, può essere un valore negativo.
    Esempio:
    3… 1 // errore irreversibile: impossibile formare un intervallo con upperBound <lowerBound -3… 1 // Questo è un intervallo valido. Lowerbound / Upperbound può contenere un valore negativo ma deve essere valido per l'affermazione precedente.
  • Possiamo iterare sull'intervallo (escluso l'intervallo unilaterale) usando i cicli for-in.
  • Possiamo anche usare l'operatore di intervallo per accedere agli elementi di un array.

Articoli interessanti...