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 true
ako 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, last
svojstvo 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 remove
svojstvo 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 removeFirst
uklanjanja prvog elementa niza, removeLast
uklanjanja posljednjeg elementa niza i removeAll
praž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