Brzi nizovi: kako ga koristiti i zašto? (S primjerima)

U ovom vodiču naučit ćete o nizovima, stvaranju, pristupu vrijednostima niza i nekim uobičajenim operacijama u nizu.

U prethodnom članku Swift Data Types saznali smo o stvaranju varijabli / konstanti neke vrste podataka koje mogu sadržavati jednu vrijednost.

Ali, što ako želimo pohraniti više vrijednosti istog tipa podataka. U Swiftu koristimo nešto što se zove Array .

Što je niz?

Niz je jednostavno spremnik koji može sadržavati više podataka (vrijednosti) vrste podataka na uređenom popisu, tj. Dobivate elemente istim redoslijedom kao što ste definirali stavke u polju.

Niz može pohraniti vrijednosti bilo koje vrste podataka, npr Int. String, Klase itd.

Kako deklarirati niz u Swiftu?

Možete stvoriti prazan niz specificiranjem vrste podataka unutar uglatih zagrada ().

Zapamtite, tip morate uključiti u uglate zagrade, inače će ga Swift tretirati kao uobičajeni tip podataka i u njega možete pohraniti samo jednu vrijednost.

Primjer 1: Deklariranje praznog niza

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

Kada pokrenete program, izlaz će biti:

 ()

U gore navedenom programu proglasili smo konstantu emptyIntArr koja može pohraniti niz cijelih brojeva i inicijalizirana s 0 vrijednosti.

ILI

Također možete definirati prazan niz kao ispod:

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

ILI

Budući da je swift jezik zaključivanja tipa, također možete stvoriti niz izravno bez navođenja tipa podataka, ali mora se inicijalizirati s nekim vrijednostima kako bi kompajler mogao zaključiti o njegovom tipu kao:

Primjer 2: Deklariranje niza s nekim vrijednostima

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

Kada pokrenete program, izlaz će biti:

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

U gore navedenom programu proglasili smo konstantu someIntArr koja može pohraniti niz Integer bez eksplicitne specifikacije tipa. Također, inicijalizirali smo niz s vrijednostima 1, 2, 3, 4, 5, 6, 7, 8, 9 .

Primjer 3: Deklariranje niza koji sadrži navedeni broj jedne ponovljene vrijednosti

Također možete ponoviti vrijednost određeni broj puta kako biste formirali niz u Swiftu. To se postiže korištenjem inicijalizatora niza s ponavljanjem i brojanjem.

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

Kada pokrenete program, izlaz će biti:

 ("Pozdrav, svijet", "Pozdrav, svijet", "Pozdrav, svijet", "Pozdrav, svijet")

U gore navedenom programu definirali smo konstantu arrWithRepeatingValues ​​koja pohranjuje niz niza Hello, World i ponavlja istu vrijednost 4 puta kako je navedeno u brojaču .

Napomena: U Swiftu ne možete stvoriti niz veličine fiksne duljine kao u drugim programskim jezicima. Niz fiksne duljine znači da niz ne može imati više elemenata nego što ste definirali tijekom inicijalizacije.

Kako se vrijednosti pohranjuju u polje?

Pretpostavimo da imate konstantu koja može pohraniti niz nizova kao dolje:

 neka je intArr = (21, 34, 54, 12)

Slikovni prikaz načina na koji se vrijednosti pohranjuju u niz može se prikazati u nastavku:

Svi nizovi koje stvorite počinju s indeksom 0. Prvi se element sprema u indeks 0, drugi element u sljedeći indeks (1) i tako dalje.

Kako pristupiti elementima niza u Swiftu?

Elementima niza možete pristupiti korištenjem sintakse indeksa, tj. Morate uključiti indeks vrijednosti kojoj želite pristupiti u uglate zagrade odmah nakon imena niza.

Pretpostavimo da ste deklarirali niz intArr kao gore. Prvi element je intArr (0), drugi element je intArr (1) i tako dalje.

Primjer 4: Pristup elementima niza

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

Kada pokrenete program, izlaz će biti:

 21 34 54 12 

Elementima niza možete pristupiti i pomoću petlji for-in. Pogledajte petlju Swift For-in da biste saznali više o tome.

Kako izmijeniti / dodati elemente niza u Swiftu?

Elemente niza možete izmijeniti korištenjem sintakse indeksa i operatora dodjele, tj. Morate dodati indeks vrijednosti koju želite ažurirati u uglate zagrade nakon imena niza nakon čega slijede operator dodjeljivanja i nova vrijednost.

Primjer 5: Modificiranje elemenata niza

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

Kada pokrenete program, izlaz će biti:

 (12, 42, 45, 21)

Također možete izmijeniti sve elemente niza s novim vrijednostima kao dolje:

Primjer 6: Izmjena niza u cjelini

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

Kada pokrenete program, izlaz će biti:

 (1, 2, 3)

Međutim, da biste dodali novi element u postojeći niz, ne možete koristiti sintaksu indeksa. Ako to učinite, na kraju ćete dobiti pogrešku. Ne možete učiniti nešto poput ovoga:

Primjer 7: Dodavanje novog elementa u niz koristeći sintaksu indeksa (ne radi)

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

Kada pokrenete program, izlaz će biti:

 fatalna pogreška: indeks izvan dosega

Gornji program daje pogrešku prilikom dodjeljivanja novog elementa nizu intArr. To je zato što intArr nije dodijelio dodatnu memoriju za indeks 4 i ne može pohraniti zadanu vrijednost.

Da bismo ispravno umetnuli novi element u niz, koristimo append()metodu niza . append()je opisano u donjem odjeljku.

Neke korisne ugrađene funkcije i svojstva niza

1. isPrazan

Ovo svojstvo određuje je li niz prazan ili nije. Vraća se trueako niz ne sadrži nikakvu vrijednost, inače se vraća false.

Primjer 8: Kako funkcionira Empty?

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

Kada pokrenete program, izlaz će biti:

 lažno

2. prvo

Ovo se svojstvo koristi za pristup prvom elementu niza.

Primjer 9: Kako prvo funkcionira?

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

Kada pokrenete program, izlaz će biti:

 Izborno (21)

Slično tome, lastsvojstvo možete koristiti za pristup posljednjem elementu niza.

3. pridodati

Funkcija dodavanja koristi se za umetanje / dodavanje elementa na kraju niza.

Primjer 10: Kako funkcionira dodatak?

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

Kada pokrenete program, izlaz će biti:

 (21, 34, 54, 12, 32)

Sadržaj jednog polja možete dodati i drugom nizu kao:

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

Kada pokrenete program, izlaz će biti:

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

4. umetak

Ova se funkcija koristi za umetanje / dodavanje elementa na određeni indeks niza.

Primjer 11: Kako umetak radi?

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

Kada pokrenete program, izlaz će biti:

 (21, 22, 34, 54, 12)

Slično tome, također možete koristiti removesvojstvo za uklanjanje elementa u navedenom indeksu.

5. ukloniti

Ova funkcija uklanja i vraća vrijednost navedenu na navedenom položaju iz polja.

Primjer 12: Kako uklanjanje djeluje?

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

Kada pokrenete program, izlaz će biti:

 uklonjena vrijednost je bc ("ab", "cd", "de") 

Slično tome, također možete koristiti funkcije poput removeFirstuklanjanja prvog elementa niza, removeLastuklanjanja posljednjeg elementa niza i removeAllpražnjenja niza.

6. obrnuto

Ova funkcija vraća elemente niza obrnutim redoslijedom.

Primjer 13: Kako obrnuto () djeluje?

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

Kada pokrenete program, izlaz će biti:

 (24, 23, 22, 21)

7. brojati

Ovo svojstvo vraća ukupan broj elemenata u polju.

Primjer 14: računaj

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

Kada pokrenete program, izlaz će biti:

 4

Stvari koje treba zapamtiti

Dok koristite sintaksu indeksa za pristup elementima niza u Swiftu, morate biti sigurni da vrijednost leži u indeksu jer ćete u protivnom dobiti runtime rušenje. Pogledajmo ovo na primjeru:

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

Kada pokrenete program, izlaz će biti:

 fatalna pogreška: indeks izvan dosega

U gornjem programu nema vrijednosti u indeksu -1 . Dakle, kada pokušate pristupiti vrijednosti u indeksu dobit ćete runtime runtime.

Da biste to spriječili, prvo pronađite indeks elementa koji pokušavate ukloniti. A zatim uklonite element u indeksu kao dolje:

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

Kada pokrenete program, izlaz će biti:

 pronađen indeks 34 

Zanimljivi članci...