Ranges in Swift (met voorbeelden)

In dit artikel leert u over het bereik, het type en gebruiksscenario's in Swift.

Een bereik is een interval van waarden. Een eenvoudig voorbeeld van een bereik is 0,1,2,3,4,5,6,7,8,9 omdat de nummers opeenvolgend zijn van 0 tot 9.

We kunnen snel bereik creëren met behulp van twee hieronder beschreven bereikoperatoren:

1. Operator voor gesloten bereik (lowerBound … upperBound)

Het bevat alle waarden in het interval (van ondergrens naar bovengrens). Het wordt gedeclareerd met behulp van (3 punten) operator.

Bijv .: 1… 3 definieert bereik met waarden 1,2,3

2. Operator voor half open bereik (lowerBound…

Het bevat alle waarden in het interval (van ondergrens tot bovengrens) maar exclusief het laatste (bovengrens) getal. Het wordt gedeclareerd met behulp van de … <operator.

Bijv .: 1… <3 definieert een bereik met de waarden 1 en 2

Soorten bereik

1. Gesloten bereik (lowerBound … upperBound)

Bereiken die zijn gemaakt met de operator voor gesloten bereik, worden gesloten bereik genoemd. Het bevat alle waarden van ondergrens tot bovengrens.

Voorbeeld 1: waarden van gesloten bereik afdrukken met de for-in-lus

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

Wanneer u het programma uitvoert, is de uitvoer:

 1 2 3 

In het bovenstaande voorbeeld wordt een bereik gemaakt dat getallen van 1 tot 3 ( 1… 3) bevat. We hebben een for-in-lus gebruikt om te zien welke waarden het bereik bevat. Ga voor meer informatie over for-in-loops naar Swift for-in-loop.

Door de for-in-lus te gebruiken, kunnen we zien dat het gesloten bereik alle waarden in het gegeven bereik bevat, inclusief de onderste (1) en bovenste (3) grenswaarden.

2. Half open bereik (lowerBound …

Bereiken die zijn gemaakt met de operator voor half open bereik, worden halfopen bereiken genoemd. Het bevat alle waarden van ondergrens tot bovengrens, maar exclusief de bovengrenswaarde.

Voorbeeld 2: halfopen bereikwaarden afdrukken met de for-in-lus

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

Wanneer u het programma uitvoert, is de uitvoer:

 1 2 

In het bovenstaande voorbeeld hebben we de for-in-lus gebruikt om te zien hoe een halfopen bereik werkt.

In plaats van alle waarden af ​​te drukken, kunnen we duidelijk zien dat het gebruik van de halfopen operator alleen 1 en 2 afdrukt, en het is exclusief de bovengrenswaarde (dwz 3).

3. Eenzijdig bereik

Eenzijdig bereik zijn die soorten bereik die zo ver mogelijk in één richting doorlopen. Het kan worden gemaakt met zowel een operator met een half open bereik als een operator met een gesloten bereik, maar de operator kan slechts een waarde aan één kant hebben.

Voorbeeld 3: eenzijdig bereik kleiner dan 2

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

Wanneer u het programma uitvoert, is de uitvoer:

 waar onwaar 

In het bovenstaande voorbeeld wordt een eenzijdig bereik gemaakt met behulp van de operator voor een halfopen bereik dat alle getallen kleiner dan twee bevat.

Om ons resultaat te valideren hebben we de contains methode gebruikt . De containsmethode keert gewoon terug trueals het element binnen het bereik ligt, anders keert het terug false.

range.contains(-1)controleert of -1 binnen het bereik ligt of niet. Omdat het eenzijdige bereik met bovengrens 2 en -1 <2 ligt, ligt het binnen het bereik en print(range.contains(-1))wordt trueop het scherm weergegeven.

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

  • Het begin van een bereik moet kleiner zijn dan of gelijk zijn aan het einde. In ons voorbeeld (lowerBound… upperBound)moet de ondergrenswaarde kleiner zijn dan de bovengrenswaarde. Het kan echter een negatieve waarde zijn.
    Voorbeeld:
    3… 1 // fatale fout: kan bereik niet vormen met upperBound <lowerBound -3… 1 // Dit is een geldig bereik. Lowerbound / Upperbound kan een negatieve waarde bevatten, maar zou de bovenstaande verklaring geldig moeten zijn.
  • We kunnen het bereik herhalen (exclusief eenzijdig bereik) met for-in-lussen.
  • We kunnen ook de bereikoperator gebruiken om toegang te krijgen tot elementen van een array.

Interessante artikelen...