Swift Arrays: Cum se folosește și de ce? (Cu exemple)

În acest tutorial, veți afla despre matrice, crearea acesteia, accesarea valorilor unui tablou și a unor operații obișnuite în matrice.

În articolul anterior Swift Data Types, am aflat despre crearea variabilelor / constantelor unor tipuri de date care pot conține o singură valoare.

Dar, dacă vrem să stocăm mai multe valori de același tip de date. Folosim ceva numit Array în Swift.

Ce este o matrice?

O matrice este pur și simplu un container care poate conține mai multe date (valori) ale unui tip de date într-o listă ordonată, adică obțineți elementele în aceeași ordine în care ați definit articolele din matrice.

O matrice poate stoca valori de orice tip de date Int, de exemplu String,, clasă etc.

Cum să declarați o matrice în Swift?

Puteți crea o matrice goală specificând tipul de date din paranteze pătrate ().

Amintiți-vă, trebuie să includeți tipul în paranteze pătrate, altfel Swift îl va trata ca un tip de date normal și puteți stoca o singură valoare în el.

Exemplul 1: declararea unui tablou gol

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

Când rulați programul, ieșirea va fi:

 ()

În programul de mai sus, am declarat o constantă goalIntArr care poate stoca o serie de numere întregi și inițializată cu 0 valori.

SAU

De asemenea, puteți defini o matrice goală după cum urmează:

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

SAU

Deoarece, rapid este un limbaj de inferență de tip, puteți crea, de asemenea, matrice direct fără a specifica tipul de date, dar trebuie să inițializați cu unele valori, astfel încât compilatorul să poată deduce tipul său ca:

Exemplul 2: declararea unui tablou cu unele valori

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

Când rulați programul, ieșirea va fi:

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

În programul de mai sus, am declarat o constantă someIntArr care poate stoca matricea Integer fără a specifica în mod explicit tipul. De asemenea, am inițializat matricea cu valori 1, 2, 3, 4, 5, 6, 7, 8, 9 .

Exemplul 3: declararea unui tablou care conține numărul specificat dintr-o singură valoare repetată

De asemenea, puteți repeta o valoare de un anumit număr de ori pentru a forma o matrice în Swift. Acest lucru se face utilizând inițializatorul matricei cu repetare și numărare.

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

Când rulați programul, ieșirea va fi:

 („Bună ziua, lume”, „Bună ziua, lume”, „Bună ziua, lume”, „Bună ziua, lume”)

În programul de mai sus, am definit o constantă arrWithRepeatingValues ​​care stochează o matrice de șiruri Hello, World și repetă aceeași valoare de 4 ori așa cum este specificat în numărare.

Notă: În Swift, nu puteți crea matrice de dimensiuni fixe, așa cum faceți în alte limbaje de programare. Matricea cu dimensiuni fixe înseamnă că matricea nu poate avea mai multe elemente decât cele definite în timpul inițializării.

Cum sunt stocate valorile în matrice?

Să presupunem că aveți o constantă care poate stoca o serie de șiruri după cum urmează:

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

Reprezentarea în imagini a modului în care valorile sunt stocate în matrice poate fi prezentată mai jos:

Toate tablourile pe care le creați încep cu indexul 0. Primul element este stocat în indexul 0, al doilea element în următorul index (1) și așa mai departe.

Cum se accesează elementele matricei în Swift?

Puteți accesa elementele unui tablou utilizând sintaxa indicelui, adică Trebuie să includeți indexul valorii pe care doriți să o accesați între paranteze pătrate imediat după numele matricei.

Să presupunem că ați declarat o matrice intArr ca mai sus. Primul element este intArr (0), al doilea element este intArr (1) și așa mai departe.

Exemplul 4: accesarea elementelor unui tablou

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

Când rulați programul, ieșirea va fi:

 21 34 54 12 

De asemenea, puteți accesa elemente ale unui tablou utilizând bucle de intrare. Consultați bucla Swift For-in pentru a afla mai multe despre aceasta.

Cum se modifică / se adaugă elemente matrice în Swift?

Puteți modifica elementele unui tablou utilizând sintaxa de indice și operatorul de atribuire, adică trebuie să includeți indexul valorii pe care doriți să o actualizați între paranteze pătrate după numele tabloului urmat de operatorul de atribuire și noua valoare.

Exemplul 5: Modificarea elementelor unui tablou

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

Când rulați programul, ieșirea va fi:

 (12, 42, 45, 21)

De asemenea, puteți modifica toate elementele matricei cu valori noi după cum urmează:

Exemplul 6: Modificarea unui tablou ca întreg

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

Când rulați programul, ieșirea va fi:

 (1, 2, 3)

Cu toate acestea, pentru a adăuga un element nou la o matrice existentă, nu puteți utiliza sintaxa subscriptului. Dacă da, veți ajunge la o eroare. Nu puteți face așa ceva:

Exemplul 7: Adăugarea unui element nou într-o matrice utilizând sintaxa subscriptului (Nu funcționează)

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

Când rulați programul, ieșirea va fi:

 eroare fatală: index în afara intervalului

Programul de mai sus dă o eroare în timp ce atribuiți un element nou unui array intArr. Acest lucru se datorează faptului că intArr nu a alocat memorie suplimentară pentru indexul 4 și nu poate stoca valoarea dată.

Pentru a insera corect un element nou într-o matrice, folosim append()metoda matricei . append()este descris în secțiunea de mai jos.

Unele funcții și proprietăți încorporate utile în matrice

1. esteGol

Această proprietate determină dacă un tablou este gol sau nu. Se întoarce truedacă un tablou nu conține nicio valoare, altfel se întoarce false.

Exemplul 8: Cum funcționează Empty?

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

Când rulați programul, ieșirea va fi:

 fals

2. mai întâi

Această proprietate este utilizată pentru a accesa primul element al unui tablou.

Exemplul 9: Cum funcționează mai întâi?

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

Când rulați programul, ieșirea va fi:

 Opțional (21)

În mod similar, puteți utiliza lastproprietatea pentru a accesa ultimul element al unui tablou.

3. anexa

Funcția de adăugare este utilizată pentru a insera / adăuga element la sfârșitul matricei.

Exemplul 10: Cum funcționează anexa?

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

Când rulați programul, ieșirea va fi:

 (21, 34, 54, 12, 32)

De asemenea, puteți adăuga conținutul unei matrice la o altă matrice ca:

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

Când rulați programul, ieșirea va fi:

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

4. introduceți

Această funcție este utilizată pentru a insera / adăuga elementul la indexul specific al matricei.

Exemplul 11: Cum funcționează inserția?

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

Când rulați programul, ieșirea va fi:

 (21, 22, 34, 54, 12)

În mod similar, puteți utiliza și removeproprietatea pentru a elimina elementul la indexul specificat.

5. scoateți

Această funcție elimină și returnează valoarea specificată la poziția specificată din matrice.

Exemplul 12: Cum se elimină lucrările?

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

Când rulați programul, ieșirea va fi:

 valoarea eliminată este bc ("ab", "cd", "de") 

În mod similar, puteți utiliza și funcții precum removeFirsteliminarea primului element al unui tablou, removeLasteliminarea ultimului element al unui tablou și removeAllgolirea unui tablou.

6. inversat

Această funcție returnează elementele matricei în ordine inversă.

Exemplul 13: Cum funcționează reversed ()?

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

Când rulați programul, ieșirea va fi:

 (24, 23, 22, 21)

7. numărați

Această proprietate returnează numărul total de elemente dintr-o matrice.

Exemplul 14: număr

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

Când rulați programul, ieșirea va fi:

 4

Lucruri de amintit

În timp ce utilizați sintaxa de indice pentru a accesa elementele unui tablou din Swift, trebuie să vă asigurați că valoarea se află în index, altfel veți obține un blocaj în timpul rulării. Să vedem acest lucru în exemplu:

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

Când rulați programul, ieșirea va fi:

 eroare fatală: index în afara intervalului

În programul de mai sus, nu există nicio valoare în indexul -1 . Deci, atunci când încercați să accesați valoarea din index, veți obține un blocaj de execuție.

Pentru a preveni acest lucru, găsiți mai întâi indexul elementului pe care încercați să îl eliminați. Și apoi eliminați elementul de la index după cum urmează:

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

Când rulați programul, ieșirea va fi:

 găsit index 34 

Articole interesante...