V tomto kurzu se dozvíte o polích, jejich vytváření, přístupu k hodnotám pole a některých běžných operacích v poli.
V předchozím článku Swift Data Types jsme se dozvěděli o vytváření proměnných / konstant nějakého datového typu, které mohou obsahovat jednu hodnotu.
Ale co když chceme uložit více hodnot stejného datového typu. Ve Swiftu používáme něco, co se jmenuje Array .
Co je to pole?
Pole je jednoduše kontejner, který může obsahovat více dat (hodnot) datového typu v uspořádaném seznamu, tj. Získáte prvky ve stejném pořadí, v jakém jste definovali položky v poli.
Pole může ukládat hodnoty jakéhokoli datového typu, např Int
. String
, Třídy atd.
Jak deklarovat pole v Swift?
Prázdné pole můžete vytvořit zadáním datového typu v hranatých závorkách ()
.
Nezapomeňte, že typ musíte zahrnout do hranatých závorek, jinak jej Swift bude považovat za normální datový typ a můžete do něj uložit pouze jednu hodnotu.
Příklad 1: Deklarace prázdného pole
let emptyIntArr:(Int) = () print(emptyIntArr)
Když spustíte program, výstup bude:
()
Ve výše uvedeném programu jsme deklarovali konstantu emptyIntArr, která může ukládat pole celého čísla a inicializovat s 0 hodnotami.
NEBO
Prázdné pole můžete také definovat níže:
let emptyIntArr:Array = Array() print(emptyIntArr)
NEBO
Vzhledem k tomu, že swift je jazyk pro odvozování typů, můžete také vytvořit pole přímo bez zadání datového typu, ale je nutné jej inicializovat pomocí některých hodnot, aby kompilátor mohl odvodit svůj typ jako:
Příklad 2: Deklarace pole s některými hodnotami
let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr)
Když spustíte program, výstup bude:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
Ve výše uvedeném programu jsme deklarovali konstantu someIntArr, která může ukládat pole Integer bez výslovného zadání typu. Také jsme inicializovali pole s hodnotami 1, 2, 3, 4, 5, 6, 7, 8, 9 .
Příklad 3: Deklarace pole obsahujícího zadaný počet jedné opakované hodnoty
Můžete také opakovat hodnotu daného počtu opakování a vytvořit pole v Swift. To se provádí pomocí inicializátoru pole s opakováním a počítáním.
let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues)
Když spustíte program, výstup bude:
(„Hello, World“, „Hello, World“, „Hello, World“, „Hello, World“)
Ve výše uvedeném programu jsme definovali konstantní arrWithRepeatingValues, která ukládá pole řetězce Hello, World a opakuje stejnou hodnotu 4krát, jak je uvedeno v počtu.
Poznámka: Ve Swiftu nemůžete vytvořit pole velikosti pevné délky jako v jiných programovacích jazycích. Pole velikosti pevné délky znamená, že pole nemůže mít více prvků, než kolik definujete během inicializace.
Jak jsou hodnoty uloženy v poli?
Předpokládejme, že máte konstantu, která může ukládat pole řetězců, jak je uvedeno níže:
nechme intArr = (21, 34, 54, 12)
Níže je uvedeno obrázkové znázornění toho, jak jsou hodnoty uloženy v poli:
Všechna pole, která vytvoříte, začínají indexem 0. První prvek je uložen v indexu 0, druhý prvek v dalším indexu (1) atd.
Jak získat přístup k prvkům pole v Swift?
K prvkům pole můžete přistupovat pomocí syntaxe dolního indexu, tj. Bezprostředně za názvem pole musíte do hranatých závorek zahrnout index hodnoty, ke které chcete získat přístup.
Předpokládejme, že jste deklarovali pole intArr, jak je uvedeno výše. První prvek je intArr (0), druhý prvek je intArr (1) atd.
Příklad 4: Přístup k prvkům pole
let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3))
Když spustíte program, výstup bude:
21 34 54 12
K prvkům pole můžete přistupovat také pomocí smyček pro vstup. Další informace najdete ve smyčce Swift For-in.
Jak upravit / přidat prvky pole v Swift?
Prvky pole můžete upravit pomocí syntaxe dolního indexu a operátoru přiřazení, tzn. Za název pole, za nímž následuje operátor přiřazení a nová hodnota, musíte do hranatých závorek zahrnout index hodnoty, kterou chcete aktualizovat.
Příklad 5: Úpravy prvků pole
var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr)
Když spustíte program, výstup bude:
(12, 42, 45, 21)
Můžete také upravit všechny prvky pole s novými hodnotami, jak je uvedeno níže:
Příklad 6: Úprava pole jako celku
var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr)
Když spustíte program, výstup bude:
(1, 2, 3)
Chcete-li však přidat nový prvek do existujícího pole, nemůžete použít syntaxi dolního indexu. Pokud tak učiníte, skončíte s chybou. Něco takového nemůžete udělat:
Příklad 7: Přidání nového prvku do pole pomocí syntaxe dolního indexu (nefunguje)
var intArr = (21, 34, 54, 12) intArr(4) = 10
Když spustíte program, výstup bude:
fatální chyba: Index je mimo rozsah
Výše uvedený program dává chybu při přiřazování nového prvku k poli intArr. Je to proto, že intArr nepřidělil další paměť pro index 4 a nemůže uložit danou hodnotu.
Ke správnému vložení nového prvku do pole použijeme append()
metodu pole . append()
je popsán v následující části.
Některé užitečné vestavěné funkce a vlastnosti pole
1. je prázdný
Tato vlastnost určuje, zda je pole prázdné nebo ne. Vrátí se, true
pokud pole neobsahuje žádnou hodnotu, jinak se vrátí false
.
Příklad 8: Jak funguje isEmpty?
let intArr = (21, 34, 54, 12) print(intArr.isEmpty)
Když spustíte program, výstup bude:
Nepravdivé
2. první
Tato vlastnost se používá pro přístup k prvnímu prvku pole.
Příklad 9: Jak první funguje?
let intArr = (21, 34, 54, 12) print(intArr.first)
Když spustíte program, výstup bude:
Volitelné (21)
Podobně můžete použít last
vlastnost pro přístup k poslednímu prvku pole.
3. připojit
Funkce append se používá k vložení / přidání prvku na konec pole.
Příklad 10: Jak funguje dodatek?
var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr)
Když spustíte program, výstup bude:
(21, 34, 54, 12, 32)
Můžete také připojit obsah jednoho pole k jinému poli jako:
var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr)
Když spustíte program, výstup bude:
(1, 2, 3, 4, 5, 6, 7, 8)
4. vložte
Tato funkce se používá k vložení / přidání prvku na konkrétní index pole.
Příklad 11: Jak funguje vložka?
var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr)
Když spustíte program, výstup bude:
(21, 22, 34, 54, 12)
Podobně můžete také použít remove
vlastnost k odstranění prvku v zadaném indexu.
5. odstranit
Tato funkce odebere a vrátí hodnotu zadanou na zadané pozici z pole.
Příklad 12: Jak funguje odebrání?
var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr)
Když spustíte program, výstup bude:
odstraněná hodnota je bc ("ab", "cd", "de")
Podobně můžete také použít funkce, jako removeFirst
je odebrání prvního prvku pole, removeLast
odebrání posledního prvku pole a removeAll
vyprázdnění pole.
6. obrácené
Tato funkce vrací prvky pole v opačném pořadí.
Příklad 13: Jak funguje reversed ()?
var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr)
Když spustíte program, výstup bude:
(24, 23, 22, 21)
7. počítat
Tato vlastnost vrací celkový počet prvků v poli.
Příklad 14: count
let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count)
Když spustíte program, výstup bude:
4
Věci k zapamatování
Při používání syntaxe dolního indexu pro přístup k prvkům pole v Swiftu si musíte být jisti, že hodnota leží v indexu, jinak dojde k selhání modulu runtime. Podívejme se na to v příkladu:
let intArr = (21, 34, 54, 12) print(intArr(-1))
Když spustíte program, výstup bude:
fatální chyba: Index je mimo rozsah
Ve výše uvedeném programu není v indexu -1 žádná hodnota . Takže když se pokusíte získat přístup k hodnotě v indexu, dostanete runtime selhání.
Chcete-li tomu zabránit, nejprve najděte index prvku, který se pokoušíte odstranit. A pak odstraňte prvek v indexu, jak je uvedeno níže:
var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) )
Když spustíte program, výstup bude:
nalezeno index 34