Šajā apmācībā jūs uzzināsit par masīviem, to izveidošanu, piekļuvi masīva vērtībām un dažām izplatītām masīva darbībām.
Iepriekšējā rakstā Swift datu tipi mēs uzzinājām par dažu datu tipu mainīgo / konstantu izveidi, kas satur vienu vērtību.
Bet ko darīt, ja mēs vēlamies saglabāt vairākas viena un tā paša veida datu vērtības. Mēs Swift izmantojam kaut ko ar nosaukumu Array .
Kas ir masīvs?
Masīvs ir vienkārši konteiners, kurā sakārtotā sarakstā var ievietot vairākus datu tipa datus (vērtības), ti, elementus iegūstat tādā pašā secībā, kā definējāt masīva vienumus.
Masīvs var uzglabāt vērtības jebkāda datu tipu, piemēram Int
, String
klases utt
Kā pasludināt masīvu Swift?
Jūs varat izveidot tukšu masīvu, kvadrātiekavās norādot datu tipu ()
.
Atcerieties, ka kvadrātiekavās ir jāiekļauj tips, pretējā gadījumā Swift to uzskatīs par parastu datu tipu, un tajā varēsit saglabāt tikai vienu vērtību.
1. piemērs: tukša masīva deklarēšana
let emptyIntArr:(Int) = () print(emptyIntArr)
Palaidot programmu, izeja būs:
()
Iepriekš minētajā programmā mēs esam deklarējuši pastāvīgu tukšuIntArr, kas var saglabāt vesela skaitļa masīvu un inicializēt ar 0 vērtībām.
VAI
Varat arī definēt tukšu masīvu šādi:
let emptyIntArr:Array = Array() print(emptyIntArr)
VAI
Tā kā swift ir tipa secinājuma valoda, jūs varat arī izveidot masīvu tieši, nenorādot datu tipu, bet inicializēt ar dažām vērtībām, lai kompilators varētu secināt tā veidu kā:
2. piemērs: masīva deklarēšana ar dažām vērtībām
let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr)
Palaidot programmu, izeja būs:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
Iepriekš minētajā programmā mēs esam deklarējuši konstanti someIntArr, kas var saglabāt Integer masīvu, nepārprotami nenorādot veidu. Turklāt mēs esam inicializējuši masīvu ar 1, 2, 3, 4, 5, 6, 7, 8, 9 vērtībām.
3. piemērs: masīva deklarēšana, kurā ir norādīts atkārtotas vērtības norādītais skaits
Varat arī atkārtot vērtību noteiktu skaitu reižu, lai izveidotu masīvu Swift. To veic, izmantojot masīva inicializētāju ar atkārtojumu un skaitīšanu.
let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues)
Palaidot programmu, izeja būs:
("Sveika, pasaule", "Sveika, pasaule", "Sveika, pasaule", "Sveika, pasaule")
Iepriekš minētajā programmā mēs esam definējuši nemainīgu arrWithRepeatingValues, kas glabā virknes Hello, World masīvu un atkārto to pašu vērtību 4 reizes, kā norādīts skaitī .
Piezīme. Programmā Swift nevar izveidot fiksēta garuma masīvu, kā to darāt citās programmēšanas valodās. Fiksēta garuma masīvs nozīmē, ka masīvā nedrīkst būt vairāk elementu, nekā jūs definējat inicializācijas laikā.
Kā vērtības tiek glabātas masīvā?
Pieņemsim, ka jums ir konstante, kas var saglabāt virkņu virkni šādi:
ļaujiet intArr = (21, 34, 54, 12)
Zemāk var parādīt, kā vērtības tiek glabātas masīvā:
Visi jūsu izveidotie masīvi sākas ar indeksu 0. Pirmais elements tiek saglabāts indeksā 0, otrais elements nākamajā indeksā (1) un tā tālāk.
Kā piekļūt masīva elementiem Swift?
Jūs varat piekļūt masīva elementiem, izmantojot apakšraksta sintaksi, ti, tūlīt pēc masīva nosaukuma kvadrātiekavās jāiekļauj vērtības, kurai vēlaties piekļūt, indekss.
Pieņemsim, ka jūs deklarējāt masīvu intArr kā iepriekš. Pirmais elements ir intArr (0), otrais elements ir intArr (1) un tā tālāk.
4. piemērs: Piekļuve masīva elementiem
let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3))
Palaidot programmu, izeja būs:
21 34 54 12
Varat arī piekļūt masīva elementiem, izmantojot ievadīšanas cilpas. Skatiet sadaļu Swift For-in loop, lai uzzinātu vairāk par to.
Kā modificēt / pievienot masīva elementus Swift?
Jūs varat modificēt masīva elementus, izmantojot apakšu sintakses un piešķiršanas operatoru, ti, kvadrātiekavās jāpievieno atjaunināmās vērtības indekss aiz masīva nosaukuma, kam seko piešķiršanas operators un jauna vērtība.
5. piemērs: Masīva elementu modificēšana
var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr)
Palaidot programmu, izeja būs:
(12, 42, 45, 21)
Varat arī modificēt visus masīva elementus ar jaunām vērtībām, kā norādīts zemāk:
6. piemērs: Masīva modificēšana kopumā
var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr)
Palaidot programmu, izeja būs:
(1, 2, 3)
Tomēr, lai pievienotu jaunu elementu esošam masīvam, jūs nevarat izmantot apakšraksta sintaksi. Ja jūs to izdarīsit, tiks parādīta kļūda. Jūs nevarat kaut ko darīt šādi:
7. piemērs: Jauna elementa pievienošana masīvā, izmantojot apakšraksta sintaksi (nedarbojas)
var intArr = (21, 34, 54, 12) intArr(4) = 10
Palaidot programmu, izeja būs:
liktenīga kļūda: indekss ir ārpus diapazona
Iepriekš minētā programma piešķir kļūdu, piešķirot jaunu elementu masīvam intArr. Tas ir tāpēc, ka intArr nav piešķīris papildu atmiņu indeksam 4 un nevar saglabāt norādīto vērtību.
Lai pareizi ievietotu masīvā jaunu elementu, mēs izmantojam masīva append()
metodi. append()
ir aprakstīts zemāk esošajā sadaļā.
Dažas noderīgas iebūvētas masīva funkcijas un īpašības
1. isTukšs
Šis rekvizīts nosaka, vai masīvs ir tukšs vai nav. Tas atgriežas, true
ja masīvs nesatur nevienu citu vērtību false
.
8. piemērs: Kā darbojas Empty?
let intArr = (21, 34, 54, 12) print(intArr.isEmpty)
Palaidot programmu, izeja būs:
nepatiesa
2. vispirms
Šis rekvizīts tiek izmantots, lai piekļūtu masīva pirmajam elementam.
9. piemērs: Kā vispirms darbojas?
let intArr = (21, 34, 54, 12) print(intArr.first)
Palaidot programmu, izeja būs:
Pēc izvēles (21)
Līdzīgi varat izmantot last
īpašumu, lai piekļūtu masīva pēdējam elementam.
3. pievienot
Funkciju Pievienot pievieno, lai ievietotu / pievienotu elementu masīva beigās.
10. piemērs: Kā darbojas pielikums?
var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr)
Palaidot programmu, izeja būs:
(21, 34, 54, 12, 32)
Varat arī pievienot viena masīva saturu citam masīvam kā:
var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr)
Palaidot programmu, izeja būs:
(1, 2, 3, 4, 5, 6, 7, 8)
4. ievietojiet
Šī funkcija tiek izmantota, lai ievietotu / pievienotu elementu konkrētā masīva indeksā.
11. piemērs: Kā ievietojums darbojas?
var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr)
Palaidot programmu, izeja būs:
(21, 22, 34, 54., 12.)
Līdzīgi jūs varat arī izmantot remove
īpašumu, lai noņemtu elementu norādītajā indeksā.
5. noņemt
Šī funkcija no masīva noņem un atgriež norādītajā vietā norādīto vērtību.
12. piemērs: Kā darbojas noņemšana?
var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr)
Palaidot programmu, izeja būs:
noņemtā vērtība ir bc ("ab", "cd", "de")
Tāpat jūs varat izmantot arī tādas funkcijas kā removeFirst
masīva pirmā elementa noņemšana, masīva removeLast
pēdējā elementa noņemšana un masīva removeAll
iztukšošana.
6. apgriezts
Šī funkcija atgriež masīva elementus apgrieztā secībā.
13. piemērs: Kā darbojas apgrieztais ()?
var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr)
Palaidot programmu, izeja būs:
(24, 23, 22, 21)
7. skaitīt
Šis rekvizīts atgriež kopējo elementu skaitu masīvā.
14. piemērs: skaitīt
let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count)
Palaidot programmu, izeja būs:
4
Atceramās lietas
Lai piekļūtu masīva elementiem Swift, izmantojot indeksu sintaksi, jums jābūt pārliecinātam, ka vērtība atrodas indeksā, pretējā gadījumā jūs saņemsiet izpildlaika avāriju. Apskatīsim šo piemēru:
let intArr = (21, 34, 54, 12) print(intArr(-1))
Palaidot programmu, izeja būs:
liktenīga kļūda: indekss ir ārpus diapazona
Iepriekš minētajā programmā indeksā -1 nav vērtības . Tātad, mēģinot piekļūt indeksa vērtībai, jūs saņemsiet izpildlaika avāriju.
Lai to novērstu, vispirms atrodiet tā elementa indeksu, kuru mēģināt noņemt. Un pēc tam noņemiet elementu indeksā, kā norādīts zemāk:
var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) )
Palaidot programmu, izeja būs:
atrasts indekss 34