Greiti masyvai: kaip jį naudoti ir kodėl? (Su pavyzdžiais)

Šioje pamokoje sužinosite apie masyvus, jų kūrimą, prieigą prie masyvo reikšmių ir keletą bendrų masyvo operacijų.

Ankstesniame „Swift“ duomenų tipų straipsnyje mes sužinojome apie tam tikro duomenų tipo kintamųjų / konstantų, galinčių turėti vieną vertę, kūrimą.

Bet ką daryti, jei norime išsaugoti kelias to paties duomenų tipo reikšmes. „Swift“ mes naudojame tai, kas vadinama „ Array “.

Kas yra masyvas?

Masyvas yra tiesiog konteineris, kuriame gali būti keli duomenų tipo duomenys (reikšmės) sutvarkytame sąraše, ty elementus gausite ta pačia tvarka, kaip apibrėžėte masyvo elementus.

Masyvas gali saugoti bet kokio tipo duomenis, pvz Int. String, Klasę ir kt.

Kaip deklaruoti masyvą „Swift“?

Tuščią masyvą galite sukurti nurodydami duomenų tipą laužtiniuose skliaustuose ().

Atminkite, kad tipą turite įrašyti laužtiniuose skliaustuose, kitaip „Swift“ tai traktuos kaip įprastą duomenų tipą ir jame galėsite išsaugoti tik vieną reikšmę.

1 pavyzdys: tuščio masyvo deklaravimas

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

Kai paleisite programą, išvestis bus:

 ()

Pirmiau pateiktoje programoje mes paskelbėme pastovią tuščią Intent, kuri gali išsaugoti sveikojo skaičiaus masyvą ir inicijuoti 0 reikšmėmis.

ARBA

Taip pat galite apibrėžti tuščią masyvą taip:

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

ARBA

Kadangi „swift“ yra tipo išvadų kalba, masyvą taip pat galite sukurti tiesiogiai nenurodydami duomenų tipo, tačiau turite inicijuoti kai kurias reikšmes, kad kompiliatorius galėtų padaryti išvadą apie jo tipą:

2 pavyzdys: masyvo su kai kuriomis reikšmėmis deklaravimas

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

Kai paleisite programą, išvestis bus:

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

Pirmiau pateiktoje programoje mes paskelbėme pastovią someIntArr, kuri gali išsaugoti sveikojo skaičiaus masyvą, aiškiai nenurodydama tipo. Be to, mes inicijavome masyvą su 1, 2, 3, 4, 5, 6, 7, 8, 9 reikšmėmis.

3 pavyzdys: masyvo, kuriame yra nurodytas vienos pakartotos vertės skaičius, deklaravimas

Taip pat galite pakartoti vertę tam tikrą skaičių kartų, kad sudarytumėte „Swift“ masyvą. Tai atliekama naudojant masyvo iniciatorių su pakartojimu ir skaičiavimu.

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

Kai paleisite programą, išvestis bus:

 („Sveikas, pasauli“, „Sveikas, pasaulis“, „Sveikas, pasaulis“, „Sveikas, pasaulis“)

Pirmiau pateiktoje programoje mes apibrėžėme pastovią „arrWithRepeatingValues“, kuri saugo eilutės „ Hello, World“ masyvą ir 4 kartus pakartoja tą pačią vertę, kaip nurodyta skaičiuojant.

Pastaba: „Swift“ negalite sukurti fiksuoto ilgio masyvo, kaip tai darote kitomis programavimo kalbomis. Fiksuoto ilgio masyvas reiškia, kad masyvas negali turėti daugiau elementų, nei jūs apibrėžiate inicijuodami.

Kaip vertės saugomos masyve?

Tarkime, kad turite konstantą, galinčią saugoti eilutes, kaip nurodyta toliau:

 tegul intArr = (21, 34, 54, 12)

Vaizdinis vaizdas, kaip vertės saugomos masyve, gali būti parodytas žemiau:

Visi jūsų sukurti masyvai prasideda indeksu 0. Pirmasis elementas saugomas indekse 0, antrasis elementas kitame rodyklėje (1) ir pan.

Kaip pasiekti masyvo elementus „Swift“?

Masyvo elementus galite pasiekti naudodami indekso sintaksę, ty, iškart po masyvo pavadinimu kvadratiniuose skliaustuose turite įtraukti vertės, kurią norite pasiekti, rodyklę.

Tarkime, kad jūs deklaravote masyvą intArr, kaip nurodyta aukščiau. Pirmasis elementas yra intArr (0), antrasis elementas yra intArr (1) ir pan.

4 pavyzdys: Prieiga prie masyvo elementų

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

Kai paleisite programą, išvestis bus:

 21 34 54 12 

Taip pat galite pasiekti masyvo elementus naudodami įvesties kilpas. Žr. „Swift For-in loop“, kad sužinotumėte daugiau apie tai.

Kaip modifikuoti / pridėti masyvo elementus „Swift“?

Masyvo elementus galite modifikuoti naudodami indekso sintaksę ir priskyrimo operatorių, ty kvadratiniuose skliaustuose po masyvo pavadinimu, po kurio priskyrimo operatoriumi, ir naują vertę turite įtraukti reikšmės, kurią norite atnaujinti, indeksą.

5 pavyzdys: Masyvo elementų modifikavimas

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

Kai paleisite programą, išvestis bus:

 (12, 42, 45, 21)

Taip pat galite modifikuoti visus masyvo elementus su naujomis reikšmėmis, kaip nurodyta toliau:

6 pavyzdys: Viso masyvo modifikavimas

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

Kai paleisite programą, išvestis bus:

 (1, 2, 3)

Tačiau norėdami pridėti naują elementą prie esamo masyvo, negalite naudoti prenumeratos sintaksės. Jei tai padarysite, gausite klaidą. Negalite padaryti kažko panašaus:

7 pavyzdys: Naujo elemento įtraukimas į masyvą naudojant indekso sintaksę (neveikia)

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

Kai paleisite programą, išvestis bus:

 mirtina klaida: indeksas už diapazono ribų

Minėta programa suteikia klaidą priskiriant naują elementą masyvui intArr. Taip yra todėl, kad intArr nepaskyrė papildomos atminties indeksui 4 ir negali išsaugoti nurodytos vertės.

Norėdami teisingai įterpti naują elementą į masyvą, mes naudojame masyvo append()metodą. append()aprašyta tolesniame skyriuje.

Kai kurios naudingos įmontuotos masyvo funkcijos ir ypatybės

1. isTuščias

Ši savybė nustato, ar masyvas tuščias, ar ne. Jis grąžinamas, truejei masyve nėra jokios kitos vertės false.

8 pavyzdys: Kaip veikia „Empty“?

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

Kai paleisite programą, išvestis bus:

 melagingas

2. pirma

Ši savybė naudojama norint pasiekti pirmąjį masyvo elementą.

9 pavyzdys: kaip pirmiausia veikia?

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

Kai paleisite programą, išvestis bus:

 Neprivaloma (21)

Panašiai galite naudoti lastnuosavybę norėdami pasiekti paskutinį masyvo elementą.

3. pridėti

Funkcija „Pridėti“ naudojama elementui įterpti / pridėti masyvo pabaigoje.

10 pavyzdys: Kaip veikia priedas?

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

Kai paleisite programą, išvestis bus:

 (21, 34, 54, 12, 32)

Taip pat galite pridėti vieno masyvo turinį prie kito masyvo kaip:

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

Kai paleisite programą, išvestis bus:

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

4. įterpti

Ši funkcija naudojama elementui įterpti / pridėti prie konkretaus masyvo indekso.

11 pavyzdys: Kaip veikia intarpas?

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

Kai paleisite programą, išvestis bus:

 (21, 22, 34, 54, 12)

Taip pat galite naudoti removeypatybę elementui pašalinti nurodytame rodyklėje.

5. nuimkite

Ši funkcija pašalina ir grąžina nurodytoje pozicijoje nurodytą vertę iš masyvo.

12 pavyzdys: Kaip veikia pašalinimas?

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

Kai paleisite programą, išvestis bus:

 pašalinta vertė yra bc ("ab", "cd", "de") 

Taip pat galite naudoti tokias funkcijas kaip removeFirstpašalinti pirmąjį masyvo elementą, removeLastpašalinti paskutinį masyvo elementą ir removeAllištuštinti masyvą.

6. atvirkštinis

Ši funkcija grąžina masyvo elementus atvirkštine tvarka.

13 pavyzdys: Kaip veikia atvirkštinė ()?

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

Kai paleisite programą, išvestis bus:

 (24, 23, 22, 21)

7. suskaičiuoti

Ši savybė pateikia bendrą masyvo elementų skaičių.

14 pavyzdys: suskaičiuoti

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

Kai paleisite programą, išvestis bus:

 4

Ką reikia atsiminti

Naudodamiesi indekso sintakse, norėdami pasiekti „Swift“ masyvo elementus, turite būti tikri, kad reikšmė yra rodyklėje, kitaip gausite vykdymo metu įvykusią avariją. Pažiūrėkime tai pavyzdyje:

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

Kai paleisite programą, išvestis bus:

 mirtina klaida: indeksas už diapazono ribų

Pirmiau pateiktoje programoje indekse -1 nėra vertės . Taigi, kai bandysite pasiekti indekso vertę, gausite vykdymo laiko gedimą.

Norėdami to išvengti, pirmiausia raskite elemento, kurį bandote pašalinti, rodyklę. Tada pašalinkite elementą prie indekso, kaip nurodyta toliau:

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

Kai paleisite programą, išvestis bus:

 rastas indeksas 34 

Įdomios straipsniai...