Selles õpetuses saate teada massiividest, nende loomisest, massiivi väärtustele juurdepääsemisest ja mõnest massiivi tavalisest toimingust.
Eelmises Swifti andmetüüpide artiklis õppisime tundma mõne andmetüübi muutujate / konstantide loomist, mis mahutavad ühte väärtust.
Aga mis siis, kui soovime salvestada mitu sama andmetüübi väärtust. Swiftis kasutame midagi nimega Array .
Mis on massiiv?
Massiiv on lihtsalt konteiner, mis mahutab järjestatud loendis mitut andmetüüpi (väärtust) andmetüüpi, st elemendid saadakse samas järjestuses nagu massiivi üksused määratlesid.
Massiivi saab salvestada väärtusi andmeid tüüp nt Int
, String
, klassi jne
Kuidas kuulutada massiiv Swiftis?
Tühja massiivi saate luua, määrates andmetüübi nurksulgudes ()
.
Pidage meeles, et peate sisestama tüübi nurksulgudesse, vastasel juhul käsitleb Swift seda tavalise andmetüübina ja saate sinna salvestada ainult ühe väärtuse.
Näide 1: Tühja massiivi deklareerimine
let emptyIntArr:(Int) = () print(emptyIntArr)
Programmi käivitamisel on väljund järgmine:
()
Ülaltoodud programmis oleme deklareerinud pideva emptyIntArr, mis suudab salvestada täisarvu massiivi ja initsialiseerida 0 väärtusega.
VÕI
Tühja massiivi saate määratleda ka järgmiselt:
let emptyIntArr:Array = Array() print(emptyIntArr)
VÕI
Kuna swift on tüübi järelduskeel, saate massiivi luua ka otse ilma andmetüüpi määramata, kuid peate initsialiseerima mõne väärtusega, et kompilaator saaks selle tüübi järeldada järgmiselt:
Näide 2: massiivi deklareerimine mõne väärtusega
let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr)
Programmi käivitamisel on väljund järgmine:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
Ülaltoodud programmis oleme deklareerinud konstandi someIntArr, mis suudab salvestada täisarvu massiivi, ilma et tüüp oleks selgesõnaliselt täpsustatud. Samuti oleme algatanud massiivi 1, 2, 3, 4, 5, 6, 7, 8, 9 väärtustega.
Näide 3: massiivi deklareerimine, mis sisaldab määratud arvu ühekordset väärtust
Massiivi moodustamiseks Swiftis saate väärtust korrata ka mitu korda. Selleks kasutatakse massiivi initsiaatorit kordamise ja loendamisega.
let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues)
Programmi käivitamisel on väljund järgmine:
("Tere, maailm", "Tere, maailm", "Tere, maailm", "Tere, maailm")
Ülaltoodud programmis oleme määranud konstantsed arrWithRepeatingValues, mis salvestab stringi massiivi Hello, World ja kordab sama väärtust 4 korda, nagu loendis on määratud.
Märkus . Swiftis ei saa fikseeritud pikkusega massiivi luua nagu teistes programmeerimiskeeltes. Fikseeritud pikkusega massiiv tähendab, et massiivil ei saa olla rohkem elemente, kui olete lähtestamise ajal määranud.
Kuidas väärtusi massiivis salvestatakse?
Oletame, et teil on konstant, mis saab hulga stringe salvestada järgmiselt:
olgu intArr = (21, 34, 54, 12)
Piltide kujutist massiivi salvestamise kohta saab näidata allpool:
Kõik teie loodud massiivid algavad indeksiga 0. Esimene element salvestatakse indeksis 0, teine element järgmises indeksis (1) ja nii edasi.
Kuidas Swiftis massiivi elementidele juurde pääseda?
Massiivi elementidele pääsete juurde, kasutades alaindeksite süntaksit, st peate kohe pärast massiivi nime sisestama nurksulgudesse selle väärtuse indeksi, millele soovite juurde pääseda.
Oletame, et deklareerisite massiivi intArr nagu ülal. Esimene element on intArr (0), teine element intArr (1) ja nii edasi.
Näide 4: Juurdepääs massiivi elementidele
let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3))
Programmi käivitamisel on väljund järgmine:
21 34 54 12
Massiivi elementidele pääseb juurde ka sisselülitamise silmuste abil. Selle kohta lisateabe saamiseks lugege jaotist Swift sisselülitamise silmus.
Kuidas muuta Swiftis massiivi elemente / lisada?
Massiivi elemente saate muuta, kasutades alaindeksi süntaksit ja määranguoperaatorit, st peate sisestama värskendatava väärtuse indeks nurksulgudesse pärast massiivi nime, millele järgneb määranguoperaator ja uus väärtus.
Näide 5: Massiivi elementide muutmine
var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr)
Programmi käivitamisel on väljund järgmine:
(12, 42, 45, 21)
Samuti saate muuta kõiki massiivi elemente uute väärtustega, nagu allpool:
Näide 6: Massiivi muutmine tervikuna
var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr)
Programmi käivitamisel on väljund järgmine:
(1, 2, 3)
Olemasolevale massiivile uue elemendi lisamiseks ei saa te siiski kasutada alaindeksi süntaksit. Kui teete seda, saate lõpuks vea. Midagi sellist ei saa teha:
Näide 7: massiivi uue elemendi lisamine alamindeksi süntaksiga (ei tööta)
var intArr = (21, 34, 54, 12) intArr(4) = 10
Programmi käivitamisel on väljund järgmine:
saatuslik viga: indeks on vahemikust väljas
Ülaltoodud programm annab vea massiivi intArr uue elemendi määramisel. Seda seetõttu, et intArr ei ole eraldanud indeksile 4 lisamälu ega saa antud väärtust salvestada.
Massiivi uue elemendi õigeks sisestamiseks kasutame massiivi append()
meetodit. append()
on kirjeldatud allpool.
Mõned kasulikud sisseehitatud massiivi funktsioonid ja atribuudid
1. onTühi
See omadus määrab, kas massiiv on tühi või mitte. See naaseb, true
kui massiiv ei sisalda muud väärtust false
.
Näide 8: Kuidas Empty töötab?
let intArr = (21, 34, 54, 12) print(intArr.isEmpty)
Programmi käivitamisel on väljund järgmine:
vale
2. esimene
Seda omadust kasutatakse massiivi esimese elemendi juurde pääsemiseks.
Näide 9: Kuidas esimene töötab?
let intArr = (21, 34, 54, 12) print(intArr.first)
Programmi käivitamisel on väljund järgmine:
Valikuline (21)
Samamoodi saate last
massiivi viimase elemendi juurde pääsemiseks kasutada omadust.
3. lisa
Funktsiooni Lisa lisatakse massiivi lõppu elemendi lisamiseks / lisamiseks.
Näide 10: Kuidas lisa töötab?
var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr)
Programmi käivitamisel on väljund järgmine:
(21, 34, 54, 12, 32)
Ühe massiivi sisu saate lisada ka teisele massiivile järgmiselt:
var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr)
Programmi käivitamisel on väljund järgmine:
(1, 2, 3, 4, 5, 6, 7, 8)
4. sisestage
Seda funktsiooni kasutatakse massiivi konkreetse indeksi elemendi lisamiseks / lisamiseks.
Näide 11: Kuidas sisestus toimib?
var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr)
Programmi käivitamisel on väljund järgmine:
(21, 22, 34, 54, 12)
Samamoodi saate remove
atribuudi abil elementi eemaldada määratud indeksist.
5. eemaldage
See funktsioon eemaldab ja tagastab massiivilt määratud asukohas määratud väärtuse.
Näide 12: Kuidas eemaldamine toimib?
var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr)
Programmi käivitamisel on väljund järgmine:
eemaldatud väärtus on bc ("ab", "cd", "de")
Samamoodi saate kasutada ka selliseid funktsioone nagu removeFirst
massiivi esimese elemendi eemaldamine, massiivi removeLast
viimase elemendi eemaldamine ja massiivi removeAll
tühjendamine.
6. tagurpidi
See funktsioon tagastab massiivi elemendid vastupidises järjekorras.
Näide 13: Kuidas tagurpidi () töötab?
var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr)
Programmi käivitamisel on väljund järgmine:
(24, 23, 22, 21)
7. loenda
See omadus tagastab massiivi elementide koguarvu.
Näide 14: loenda
let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count)
Programmi käivitamisel on väljund järgmine:
4
Asjad, mida meeles pidada
Kui kasutate Swifti massiivi elementidele juurdepääsemiseks alaindeksisüntaksit, peate olema kindel, et väärtus peitub indeksis, vastasel juhul saate käituse krahhi. Vaatame seda näites:
let intArr = (21, 34, 54, 12) print(intArr(-1))
Programmi käivitamisel on väljund järgmine:
saatuslik viga: indeks on vahemikust väljas
Ülaltoodud programmis pole indeksis -1 väärtust . Nii et kui proovite pääseda indeksis olevale väärtusele, saate käituse krahhi.
Selle vältimiseks leidke kõigepealt eemaldatava elemendi register. Ja seejärel eemaldage indeksist järgmine element:
var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) )
Programmi käivitamisel on väljund järgmine:
leitud indeks 34