V tomto výučbe sa dozviete o poliach, ich vytváraní, prístupe k hodnotám poľa a niektorých bežných operáciách v poli.
V predchádzajúcom článku o dátových typoch Swift sme sa dozvedeli o vytváraní premenných / konštánt nejakého dátového typu, ktoré môžu obsahovať jednu hodnotu.
Čo však v prípade, že chceme uložiť viac hodnôt rovnakého dátového typu. V aplikácii Swift používame niečo, čo sa volá Array .
Čo je to pole?
Pole je jednoducho kontajner, ktorý môže obsahovať viac údajov (hodnôt) dátového typu v usporiadanom zozname, tj. Prvky získate v rovnakom poradí, v akom ste definovali položky v poli.
Pole môže ukladať hodnoty ľubovoľného dátového typu, napr Int
. String
, Triedy atď.
Ako deklarovať pole v Swifte?
Prázdne pole môžete vytvoriť zadaním dátového typu v hranatých zátvorkách ()
.
Pamätajte, že typ musíte zahrnúť do hranatých zátvoriek, inak ho Swift bude považovať za normálny údajový typ a môžete do neho uložiť iba jednu hodnotu.
Príklad 1: Deklarovanie prázdneho poľa
let emptyIntArr:(Int) = () print(emptyIntArr)
Po spustení programu bude výstup:
()
Vo vyššie uvedenom programe sme deklarovali konštantu emptyIntArr, ktorá dokáže uložiť pole na celé číslo a inicializovať s 0 hodnotami.
ALEBO
Môžete tiež definovať prázdne pole, ako je uvedené nižšie:
let emptyIntArr:Array = Array() print(emptyIntArr)
ALEBO
Pretože swift je jazyk na odvodenie typu, môžete tiež vytvoriť pole priamo bez zadania dátového typu, ale musíte ho inicializovať pomocou niektorých hodnôt, aby kompilátor mohol odvodiť jeho typ ako:
Príklad 2: Deklarovanie poľa s niektorými hodnotami
let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr)
Po spustení programu bude výstup:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
Vo vyššie uvedenom programe sme deklarovali konštantu someIntArr, ktorá dokáže ukladať pole Integer bez výslovného určenia typu. Tiež sme inicializovali pole s hodnotami 1, 2, 3, 4, 5, 6, 7, 8, 9 .
Príklad 3: Deklarovanie poľa obsahujúceho zadaný počet jednej opakovanej hodnoty
Hodnotu môžete tiež opakovať pri danom počte opakovaní a vytvoriť pole v aplikácii Swift. To sa deje pomocou inicializátora poľa s opakovaním a počítaním.
let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues)
Po spustení programu bude výstup:
(„Hello, World“, „Hello, World“, „Hello, World“, „Hello, World“)
Vo vyššie uvedenom programe sme definovali konštantnú arrWithRepeatingValues, ktorá ukladá pole reťazca Hello, World a opakuje rovnakú hodnotu štyrikrát, ako je uvedené v počte.
Poznámka: V programe Swift nemôžete vytvoriť pole s veľkosťou pevnej dĺžky ako v iných programovacích jazykoch. Veľkosť s pevnou dĺžkou znamená, že pole nemôže obsahovať viac prvkov, ako ste definovali počas inicializácie.
Ako sú hodnoty uložené v poli?
Predpokladajme, že máte konštantu, ktorá dokáže uložiť pole reťazcov, ako je uvedené nižšie:
nech intArr = (21, 34, 54, 12)
Nižšie je uvedené obrázkové znázornenie spôsobu ukladania hodnôt do poľa:
Všetky polia, ktoré vytvoríte, sa začínajú indexom 0. Prvý prvok je uložený v indexe 0, druhý prvok v nasledujúcom indexe (1) atď.
Ako získať prístup k prvkom poľa v Swifte?
K prvkom poľa môžete získať prístup pomocou syntaxe dolného indexu, tj. Ihneď po názve poľa musíte do hranatých zátvoriek zahrnúť index hodnoty, ku ktorej chcete získať prístup.
Predpokladajme, že ste deklarovali pole intArr ako je uvedené vyššie. Prvý prvok je intArr (0), druhý prvok je intArr (1) atď.
Príklad 4: Prístup k prvkom poľa
let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3))
Po spustení programu bude výstup:
21 34 54 12
K prvkom poľa môžete tiež získať prístup pomocou slučiek for-in. Ak sa chcete dozvedieť viac, pozrite si slučku Swift For-in.
Ako upraviť / pridať prvky poľa v Swifte?
Prvky poľa môžete upraviť pomocou syntaxe dolného indexu a operátora priradenia, tj musíte zahrnúť index hodnoty, ktorú chcete aktualizovať, do hranatých zátvoriek za názov poľa, za ktorým nasleduje operátor priradenia a nová hodnota.
Príklad 5: Úprava prvkov poľa
var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr)
Po spustení programu bude výstup:
(12, 42, 45, 21)
Môžete tiež upraviť všetky prvky poľa s novými hodnotami, ako je uvedené nižšie:
Príklad 6: Úprava poľa ako celku
var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr)
Po spustení programu bude výstup:
(1, 2, 3)
Ak však chcete do existujúceho poľa pridať nový prvok, nemôžete použiť syntax dolného indexu. Ak tak urobíte, skončíte s chybou. Nemôžete urobiť niečo také:
Príklad 7: Pridanie nového prvku do poľa pomocou syntaxe dolného indexu (nefunguje)
var intArr = (21, 34, 54, 12) intArr(4) = 10
Po spustení programu bude výstup:
závažná chyba: index je mimo rozsahu
Vyššie uvedený program dáva chybu pri zaraďovaní nového prvku do poľa intArr. Je to preto, že intArr nepridelil dodatočnú pamäť pre index 4 a nemôže uložiť danú hodnotu.
Na správne vloženie nového prvku do poľa použijeme append()
metódu poľa . append()
je popísaný v nasledujúcej časti.
Niektoré užitočné zabudované funkcie a vlastnosti poľa
1. jePrázdne
Táto vlastnosť určuje, či je pole prázdne alebo nie. Vráti sa, true
ak pole neobsahuje žiadnu hodnotu, inak sa vráti false
.
Príklad 8: Ako funguje isEmpty?
let intArr = (21, 34, 54, 12) print(intArr.isEmpty)
Po spustení programu bude výstup:
nepravdivé
2. prvý
Táto vlastnosť sa používa na prístup k prvému prvku poľa.
Príklad 9: Ako prvé funguje?
let intArr = (21, 34, 54, 12) print(intArr.first)
Po spustení programu bude výstup:
Voliteľné (21)
Podobne môžete last
vlastnosť použiť na prístup k poslednému prvku poľa.
3. pridať
Funkcia append sa používa na vloženie / pridanie prvku na koniec poľa.
Príklad 10: Ako funguje príloha?
var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr)
Po spustení programu bude výstup:
(21, 34, 54, 12, 32)
Môžete tiež pripojiť obsah jedného poľa k druhému poľu ako:
var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr)
Po spustení programu bude výstup:
(1, 2, 3, 4, 5, 6, 7, 8)
4. vložiť
Táto funkcia sa používa na vloženie / pripojenie prvku na konkrétny index poľa.
Príklad 11: Ako funguje vložka?
var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr)
Po spustení programu bude výstup:
(21, 22, 34, 54, 12)
Podobne môžete tiež použiť remove
vlastnosť na odstránenie prvku v zadanom indexe.
5. odstrániť
Táto funkcia odstráni a vráti z poľa hodnotu zadanú na zadanej pozícii.
Príklad 12: Ako funguje odstránenie?
var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr)
Po spustení programu bude výstup:
odstránená hodnota je bc ("ab", "cd", "de")
Podobne môžete tiež použiť funkcie, ako removeFirst
je odstránenie prvého prvku poľa, removeLast
odstránenie posledného prvku poľa a removeAll
vyprázdnenie poľa.
6. obrátený
Táto funkcia vracia prvky poľa v opačnom poradí.
Príklad 13: Ako funguje reversed ()?
var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr)
Po spustení programu bude výstup:
(24, 23, 22, 21)
7. počítať
Táto vlastnosť vracia celkový počet prvkov v poli.
Príklad 14: počítať
let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count)
Po spustení programu bude výstup:
4
Na čo treba pamätať
Pri používaní syntaxe dolného indexu na prístup k prvkom poľa v Swifte si musíte byť istí, že hodnota leží v indexe, inak dôjde k zlyhaniu za behu. Pozrime sa na príklade:
let intArr = (21, 34, 54, 12) print(intArr(-1))
Po spustení programu bude výstup:
závažná chyba: index je mimo rozsahu
Vo vyššie uvedenom programe nie je v indexe -1 žiadna hodnota . Takže keď sa pokúsite získať prístup k hodnote v indexe, dostanete runtime zlyhanie.
Ak tomu chcete zabrániť, najskôr vyhľadajte index prvku, ktorý sa pokúšate odstrániť. A potom odstráňte prvok v indexe, ako je uvedené nižšie:
var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) )
Po spustení programu bude výstup:
nájdený index 34