Nopeat taulukot: Kuinka sitä käytetään ja miksi? (Esimerkkejä)

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, truejos 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ää lastominaisuutta 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ää removeominaisuutta 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 removeFirstmatriisin ensimmäisen elementin poistaminen, matriisin removeLastviimeisen elementin poistaminen ja taulukon removeAlltyhjentä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 

Mielenkiintoisia artikkeleita...