Swift Arrays: hoe te gebruiken en waarom? (Met voorbeelden)

In deze zelfstudie leert u over arrays, het maken ervan, toegang krijgen tot waarden van een array en enkele veelgebruikte bewerkingen in array.

In het vorige artikel over Swift-gegevenstypen hebben we geleerd over het maken van variabelen / constanten van een bepaald gegevenstype die een enkele waarde kunnen bevatten.

Maar wat als we meerdere waarden van hetzelfde gegevenstype willen opslaan? We gebruiken iets dat Array heet in Swift.

Wat is een array?

Een array is gewoon een container die meerdere gegevens (waarden) van een gegevenstype in een geordende lijst kan bevatten, dwz u krijgt de elementen in dezelfde volgorde als waarin u de items in de array hebt gedefinieerd.

Een array kan waarden van elk gegevenstype bijvoorbeeld slaan Int, Stringklasse etc.

Hoe declareer je een array in Swift?

U kunt een lege array maken door het gegevenstype tussen vierkante haken op te geven ().

Onthoud dat u het type tussen vierkante haken moet opnemen, anders behandelt Swift het als een normaal gegevenstype en kunt u er slechts één waarde in opslaan.

Voorbeeld 1: een lege array declareren

 let emptyIntArr:(Int) = () print(emptyIntArr) 

Wanneer u het programma uitvoert, is de uitvoer:

 ()

In het bovenstaande programma hebben we een constante emptyIntArr gedeclareerd die een array van gehele getallen kan opslaan en geïnitialiseerd met 0-waarden.

OF

U kunt ook een lege array definiëren, zoals hieronder:

 let emptyIntArr:Array = Array() print(emptyIntArr) 

OF

Omdat swift een type-inferentietaal is, kunt u ook rechtstreeks een array maken zonder het gegevenstype op te geven, maar moet u initialiseren met enkele waarden zodat de compiler het type kan afleiden als:

Voorbeeld 2: een array met enkele waarden declareren

 let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr) 

Wanneer u het programma uitvoert, is de uitvoer:

 (1, 2, 3, 4, 5, 6, 7, 8, 9)

In het bovenstaande programma hebben we een constante someIntArr gedeclareerd die de array van Integer kan opslaan zonder het type expliciet op te geven. We hebben ook een array geïnitialiseerd met 1, 2, 3, 4, 5, 6, 7, 8, 9 waarden.

Voorbeeld 3: een array declareren die het opgegeven nummer van een enkele herhaalde waarde bevat

U kunt een waarde ook een bepaald aantal keren herhalen om een ​​array in Swift te vormen. Dit wordt gedaan met behulp van de array-initializer met herhalen en tellen.

 let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues) 

Wanneer u het programma uitvoert, is de uitvoer:

 ("Hallo wereld", "Hallo wereld", "Hallo wereld", "Hallo wereld")

In het bovenstaande programma hebben we een constante arrWithRepeatingValues ​​gedefinieerd die een reeks string Hello, World opslaat en dezelfde waarde 4 keer herhaalt zoals gespecificeerd in de telling.

Opmerking: in Swift kunt u geen array met een vaste lengte maken zoals in andere programmeertalen. Een array met een vaste lengte betekent dat de array niet meer elementen kan bevatten dan u definieert tijdens de initialisatie.

Hoe waarden worden in een array opgeslagen?

Stel dat u een constante heeft die een reeks strings kan opslaan, zoals hieronder:

 laat intArr = (21, 34, 54, 12)

De grafische weergave van hoe waarden in een array worden opgeslagen, kan hieronder worden weergegeven:

Alle arrays die u maakt, beginnen met de index 0. Het eerste element wordt opgeslagen in de index 0, het tweede element in de volgende index (1) enzovoort.

Hoe toegang krijgen tot array-elementen in Swift?

U kunt toegang krijgen tot elementen van een array met behulp van de subscript-syntaxis, dwz u moet de index van de waarde die u wilt openen tussen vierkante haken opnemen, onmiddellijk na de naam van de array.

Stel dat je een array intArr hebt gedeclareerd zoals hierboven. Het eerste element is intArr (0), het tweede element is intArr (1) enzovoort.

Voorbeeld 4: toegang krijgen tot elementen van een array

 let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3)) 

Wanneer u het programma uitvoert, is de uitvoer:

 21 34 54 12 

U kunt ook toegang krijgen tot elementen van een array door for-in-lussen te gebruiken. Zie Swift For-in-lus voor meer informatie.

Hoe array-elementen in Swift te wijzigen / toe te voegen?

U kunt elementen van een array wijzigen door de subscript-syntaxis en de toewijzingsoperator te gebruiken, dwz u moet de index van de waarde die u wilt bijwerken tussen vierkante haken opnemen na de naam van de array, gevolgd door de toewijzingsoperator en een nieuwe waarde.

Voorbeeld 5: elementen van een array wijzigen

 var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr) 

Wanneer u het programma uitvoert, is de uitvoer:

 (12, 42, 45, 21)

U kunt ook alle elementen van de array wijzigen met nieuwe waarden, zoals hieronder:

Voorbeeld 6: een array als geheel wijzigen

 var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr) 

Wanneer u het programma uitvoert, is de uitvoer:

 (1, 2, 3)

Als u echter een nieuw element aan een bestaande array wilt toevoegen, kunt u de subscriptsyntaxis niet gebruiken. Als u dat doet, krijgt u een foutmelding. U kunt zoiets niet doen:

Voorbeeld 7: een nieuw element in een array toevoegen met behulp van de subscriptsyntaxis (werkt niet)

 var intArr = (21, 34, 54, 12) intArr(4) = 10 

Wanneer u het programma uitvoert, is de uitvoer:

 fatale fout: index buiten bereik

Het bovenstaande programma geeft een foutmelding bij het toewijzen van een nieuw element aan een array intArr. Dit komt doordat intArr geen extra geheugen heeft toegewezen aan de index 4 en de opgegeven waarde niet kan opslaan.

Om een ​​nieuw element correct in een array in te voegen, gebruiken we de append()methode van array . append()wordt beschreven in de onderstaande sectie.

Enkele handige ingebouwde array-functies en -eigenschappen

1. isLeeg

Deze eigenschap bepaalt of een array leeg is of niet. Het keert terug trueals een array geen waarde bevat, anders wordt het geretourneerd false.

Voorbeeld 8: Hoe werkt isEmpty?

 let intArr = (21, 34, 54, 12) print(intArr.isEmpty) 

Wanneer u het programma uitvoert, is de uitvoer:

 false

2. eerste

Deze eigenschap wordt gebruikt om toegang te krijgen tot het eerste element van een array.

Voorbeeld 9: hoe werkt het eerst?

 let intArr = (21, 34, 54, 12) print(intArr.first) 

Wanneer u het programma uitvoert, is de uitvoer:

 Optioneel (21)

Op dezelfde manier kunt u de lasteigenschap gebruiken om toegang te krijgen tot het laatste element van een array.

3. toevoegen

De append-functie wordt gebruikt om een ​​element aan het einde van de array in te voegen / toe te voegen.

Voorbeeld 10: Hoe werkt toevoegen?

 var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr) 

Wanneer u het programma uitvoert, is de uitvoer:

 (21, 34, 54, 12, 32)

U kunt ook de inhoud van een array aan een andere array toevoegen als:

 var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr) 

Wanneer u het programma uitvoert, is de uitvoer:

 (1, 2, 3, 4, 5, 6, 7, 8)

4. invoegen

Deze functie wordt gebruikt om een ​​element in te voegen / toe te voegen aan een specifieke index van de array.

Voorbeeld 11: Hoe werkt invoegen?

 var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr) 

Wanneer u het programma uitvoert, is de uitvoer:

 (21, 22, 34, 54, 12)

Op dezelfde manier kunt u de removeeigenschap ook gebruiken om het element bij de opgegeven index te verwijderen.

5. verwijderen

Deze functie verwijdert en retourneert de waarde die is opgegeven op de opgegeven positie uit de array.

Voorbeeld 12: Hoe werkt verwijderen?

 var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr) 

Wanneer u het programma uitvoert, is de uitvoer:

 verwijderde waarde is bc ("ab", "cd", "de") 

Evenzo kunt u ook functies gebruiken zoals removeFirsthet eerste element van een array removeLastverwijderen, het laatste element van een array verwijderen en removeAlleen array leegmaken.

6. omgekeerd

Deze functie retourneert de elementen van array in omgekeerde volgorde.

Voorbeeld 13: Hoe reversed () werkt?

 var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr) 

Wanneer u het programma uitvoert, is de uitvoer:

 (24, 23, 22, 21)

7. tellen

Deze eigenschap retourneert het totale aantal elementen in een array.

Voorbeeld 14: tel

 let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count) 

Wanneer u het programma uitvoert, is de uitvoer:

 4

Dingen om te onthouden

Als u de subscriptsyntaxis gebruikt om toegang te krijgen tot elementen van een array in Swift, moet u er zeker van zijn dat de waarde in de index ligt, anders krijgt u een runtime-crash. Laten we dit in een voorbeeld bekijken:

 let intArr = (21, 34, 54, 12) print(intArr(-1)) 

Wanneer u het programma uitvoert, is de uitvoer:

 fatale fout: index buiten bereik

In het bovenstaande programma is er geen waarde in de index -1 . Dus wanneer u toegang probeert te krijgen tot de waarde in de index, krijgt u een runtime-crash.

Om dit te voorkomen, zoekt u eerst de index van het element dat u probeert te verwijderen. En verwijder vervolgens het element bij de index zoals hieronder:

 var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) ) 

Wanneer u het programma uitvoert, is de uitvoer:

 gevonden index 34 

Interessante artikelen...