Tässä opetusohjelmassa opit matriiseista, niiden luomisesta, taulukon arvojen käyttämisestä ja joistakin matriisin yleisistä toiminnoista.
Aikaisemmassa Swift-tietotyypit-artikkelissa opimme muuttujien / vakioiden luomisesta joillekin tietotyypeille, joihin mahtuu yksi arvo.
Mutta entä jos haluamme tallentaa useita arvoja samalle tietotyypille. Käytämme jotain Array- nimistä Swiftissä .
Mikä on matriisi?
Taulukko on yksinkertaisesti säilö, johon mahtuu useita tietotyypin tietoja (arvoja) järjestetyssä luettelossa, eli saat elementit samassa järjestyksessä kuin määritit matriisin kohteet.
Array voi tallentaa arvoja tahansa tietotyyppi esimerkiksi Int
, String
, luokka jne.
Kuinka julistaa taulukko Swiftissä?
Voit luoda tyhjän taulukon määrittämällä tietotyypin hakasulkeissa ()
.
Muista, että tyyppi on sisällytettävä hakasulkeisiin, muuten Swift pitää sitä normaalina tietotyyppinä ja voit tallentaa siihen vain yhden arvon.
Esimerkki 1: Tyhjän taulukon ilmoittaminen
let emptyIntArr:(Int) = () print(emptyIntArr)
Kun suoritat ohjelmaa, tulos on:
()
Yllä olevassa ohjelmassa olemme julistaneet vakion tyhjäksiAntArr, joka voi tallentaa kokonaislukumatriisin ja alustaa 0 arvolla.
TAI
Voit myös määrittää tyhjän taulukon seuraavasti:
let emptyIntArr:Array = Array() print(emptyIntArr)
TAI
Koska swift on tyypin päättelykieli, voit myös luoda taulukon suoraan määrittelemättä tietotyyppiä, mutta se on alustettava joillakin arvoilla, jotta kääntäjä voi päätellä sen tyypin seuraavasti:
Esimerkki 2: Joidenkin arvojen taulukon ilmoittaminen
let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr)
Kun suoritat ohjelmaa, tulos on:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
Yllä olevassa ohjelmassa olemme ilmoittaneet vakion someIntArr, joka voi tallentaa kokonaislukumäärän määrittelemättä tyyppiä nimenomaisesti. Olemme myös alustaneet taulukon, jossa on 1, 2, 3, 4, 5, 6, 7, 8, 9- arvot.
Esimerkki 3: Määritetään taulukko, joka sisältää määritetyn määrän yhtä toistuvaa arvoa
Voit myös toistaa arvon tietyn määrän kertoja muodostaaksesi taulukon Swiftissä. Tämä tehdään käyttämällä matriisin alustusohjelmaa toistamisen ja laskemisen kanssa.
let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues)
Kun suoritat ohjelmaa, tulos on:
("Hei, maailma", "Hei, maailma", "Hei, maailma", "Hei, maailma")
Yllä olevassa ohjelmassa olemme määrittäneet vakion arrWithRepeatingValues, joka tallentaa joukon merkkijonoa Hello, World ja toistaa saman arvon 4 kertaa laskennassa määritetyllä tavalla.
Huomaa: Swiftissä et voi luoda kiinteäkokoisia taulukoita kuten muilla ohjelmointikielillä. Kiinteän pituinen matriisi tarkoittaa, että taulukossa ei voi olla enemmän elementtejä kuin määrität alustuksen aikana.
Kuinka arvot tallennetaan matriisiin?
Oletetaan, että sinulla on vakio, joka voi tallentaa joukon merkkijonoja seuraavasti:
olkoon intArr = (21, 34, 54, 12)
Kuvallinen esitys siitä, miten arvot tallennetaan matriisiin, voidaan näyttää alla:
Kaikki luomasi taulukot alkavat indeksistä 0. Ensimmäinen elementti tallennetaan hakemistoon 0, toinen elementti seuraavaan hakemistoon (1) ja niin edelleen.
Kuinka päästä matriisielementteihin Swiftissä?
Voit käyttää taulukon elementtejä käyttämällä alaindeksin syntaksia, ts. Sinun on sisällytettävä hakemistoon arvo, jota haluat käyttää, hakasulkeissa välittömästi taulukon nimen jälkeen.
Oletetaan, että ilmoitit taulukon intArr kuten yllä. Ensimmäinen elementti on intArr (0), toinen elementti intArr (1) ja niin edelleen.
Esimerkki 4: Matriisin elementtien käyttö
let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3))
Kun suoritat ohjelmaa, tulos on:
21 34 54 12
Voit myös käyttää matriisin elementtejä käyttämällä sisääntulosilmukoita. Katso lisätietoja Swift For-in -silmukasta.
Kuinka muokata / lisätä taulukon elementtejä Swiftissä?
Voit muokata taulukon elementtejä käyttämällä alaindeksin syntaksia ja määritysoperaattoria, ts. Sinun on sisällytettävä päivitettävän arvon hakemisto hakasulkeisiin taulukon nimen jälkeen, jonka jälkeen määritetään operaattori ja uusi arvo.
Esimerkki 5: Matriisin elementtien muokkaaminen
var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr)
Kun suoritat ohjelmaa, tulos on:
(12, 42, 45, 21)
Voit myös muokata kaikkia matriisin elementtejä uusilla arvoilla seuraavasti:
Esimerkki 6: Matriisin muokkaaminen kokonaisuutena
var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr)
Kun suoritat ohjelmaa, tulos on:
(1, 2, 3)
Jos kuitenkin haluat lisätä uuden elementin olemassa olevaan matriisiin, et voi käyttää alaindeksin syntaksia. Jos teet niin, päädyt virheeseen. Et voi tehdä jotain tällaista:
Esimerkki 7: Uuden elementin lisääminen matriisiin alaindeksin syntaksin avulla (ei toimi)
var intArr = (21, 34, 54, 12) intArr(4) = 10
Kun suoritat ohjelmaa, tulos on:
kohtalokas virhe: Indeksi on alueen ulkopuolella
Yllä oleva ohjelma antaa virheen määritettäessä uutta elementtiä taulukolle intArr. Tämä johtuu siitä, että intArr ei ole varannut ylimääräistä muistia indeksille 4 eikä voi tallentaa annettua arvoa.
Jos haluat lisätä uuden elementin taulukkoon oikein, käytämme taulukon append()
menetelmää. append()
kuvataan seuraavassa osassa.
Joitakin hyödyllisiä sisäänrakennettuja Array-toimintoja ja ominaisuuksia
1. on tyhjä
Tämä ominaisuus määrittää, onko taulukko tyhjä vai ei. Se palauttaa, true
jos matriisi ei sisällä arvoa muuten false
.
Esimerkki 8: Kuinka Empty toimii?
let intArr = (21, 34, 54, 12) print(intArr.isEmpty)
Kun suoritat ohjelmaa, tulos on:
väärä
2. ensin
Tätä ominaisuutta käytetään matriisin ensimmäisen osan käyttämiseen.
Esimerkki 9: Kuinka ensimmäinen toimii?
let intArr = (21, 34, 54, 12) print(intArr.first)
Kun suoritat ohjelmaa, tulos on:
Valinnainen (21)
Vastaavasti voit käyttää last
ominaisuutta päästäksesi matriisin viimeiseen elementtiin.
3. liitä
Liitä-toimintoa käytetään lisäämään / lisäämään elementti taulukon loppuun.
Esimerkki 10: Kuinka liite toimii?
var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr)
Kun suoritat ohjelmaa, tulos on:
(21, 34, 54, 12, 32)
Voit myös liittää yhden taulukon sisällön toiseen ryhmään seuraavasti:
var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr)
Kun suoritat ohjelmaa, tulos on:
(1, 2, 3, 4, 5, 6, 7, 8)
4. työnnä
Tätä toimintoa käytetään lisäämään / lisäämään elementti taulukon tiettyyn hakemistoon.
Esimerkki 11: Kuinka insertti toimii?
var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr)
Kun suoritat ohjelmaa, tulos on:
(21, 22, 34, 54, 12)
Vastaavasti voit myös käyttää remove
ominaisuutta elementin poistamiseen määritetystä hakemistosta.
5. poista
Tämä toiminto poistaa ja palauttaa määritetyssä paikassa määritetyn arvon taulukosta.
Esimerkki 12: Kuinka poisto toimii?
var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr)
Kun suoritat ohjelmaa, tulos on:
poistettu arvo on bc ("ab", "cd", "de")
Vastaavasti voit käyttää myös toimintoja, kuten removeFirst
matriisin ensimmäisen elementin poistaminen, matriisin removeLast
viimeisen elementin poistaminen ja taulukon removeAll
tyhjentäminen.
6. päinvastoin
Tämä toiminto palauttaa matriisin elementit päinvastaisessa järjestyksessä.
Esimerkki 13: Kuinka käänteinen () toimii?
var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr)
Kun suoritat ohjelmaa, tulos on:
(24, 23, 22, 21)
7. laskea
Tämä ominaisuus palauttaa matriisin elementtien kokonaismäärän.
Esimerkki 14: laskea
let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count)
Kun suoritat ohjelmaa, tulos on:
4
Muistettavaa
Kun käytät alaindeksin syntaksia päästäksesi matriisin elementteihin Swiftissä, sinun on varmistettava, että arvo on hakemistossa, muuten saat ajonaikaisen kaatumisen. Katsotaanpa tämä esimerkissä:
let intArr = (21, 34, 54, 12) print(intArr(-1))
Kun suoritat ohjelmaa, tulos on:
kohtalokas virhe: Indeksi on alueen ulkopuolella
Edellä olevassa ohjelmassa indeksissä -1 ei ole arvoa . Joten kun yrität käyttää indeksin arvoa, saat ajonaikaisen kaatumisen.
Voit estää tämän etsimällä ensin poistettavan elementin hakemiston. Poista sitten elementti hakemistosta seuraavasti:
var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) )
Kun suoritat ohjelmaa, tulos on:
löytyi hakemisto 34