Ebben az oktatóanyagban megismerkedhet a tömbökkel, azok létrehozásával, egy tömb értékeinek elérésével és a tömb néhány általános műveletével.
Az előző Swift adattípusok című cikkben megtudtuk, hogy egyes adattípusokból mely változók / állandók hozhatnak létre egyetlen értéket.
De mi van akkor, ha ugyanazon adattípus több értékét akarjuk tárolni. Array- t használunk Swiftben.
Mi az a tömb?
A tömb egyszerűen egy tároló, amely egy adattípus több adatait (értékeit) képes elhelyezni egy rendezett listában, vagyis az elemeket ugyanabban a sorrendben kapja meg, mint ahogy a tömbben megadta az elemeket.
Egy tömb bármilyen adattípus értékét tárolhatja, pl Int
. String
, Osztály stb.
Hogyan lehet deklarálni egy tömböt Swiftben?
Létrehozhat egy üres tömböt az adattípus megadásával szögletes zárójelben ()
.
Ne feledje, hogy a típust szögletes zárójelbe kell foglalnia, különben a Swift normál adattípusként kezeli, és csak egyetlen értéket tárolhat benne.
1. példa: Üres tömb deklarálása
let emptyIntArr:(Int) = () print(emptyIntArr)
A program futtatásakor a kimenet a következő lesz:
()
A fenti programban deklaráltunk egy konstans emptyIntArr-t, amely tárolni tudja az egész tömböt és 0 értékkel inicializálni.
VAGY
Az alábbiakban definiálhat egy üres tömböt is:
let emptyIntArr:Array = Array() print(emptyIntArr)
VAGY
Mivel a swift egy típusú következtetési nyelv, tömböt is létrehozhat közvetlenül az Adattípus megadása nélkül, de néhány értékkel inicializálnia kell, hogy a fordító a következőképpen következtethessen a típusára:
2. példa: Tömb deklarálása néhány értékkel
let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr)
A program futtatásakor a kimenet a következő lesz:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
A fenti programban deklaráltunk egy konstans someIntArr-t, amely tárolni tudja az Integer tömböt anélkül, hogy a típust kifejezetten megadná. Inicializáltuk a tömböt 1, 2, 3, 4, 5, 6, 7, 8, 9 értékekkel.
3. példa: Egy tömb deklarálása, amely egyetlen megismételt érték megadott számát tartalmazza
Azt is megismételheti egy értéket, hogy adott számú alkalommal tömböt képezzen a Swift-ben. Ez a tömb inicializálójának használatával történik megismétléssel és számlálással.
let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues)
A program futtatásakor a kimenet a következő lesz:
("Hello, World", "Hello, World", "Hello, World", "Hello, World")
A fenti programban definiáltunk egy állandó arrWithRepeatingValues értéket, amely a Hello, World karakterlánc tömbjét tárolja , és ugyanazt az értéket négyszer megismétli, amint a számlálásban megadjuk .
Megjegyzés: A Swift programban nem hozhat létre fix hosszúságú tömböt, mint más programozási nyelveken. A fix hosszúságú tömb azt jelenti, hogy a tömbnek nem lehet több eleme, mint amennyit az inicializálás során definiált.
Hogyan tárolják az értékeket a tömbben?
Tegyük fel, hogy van olyan állandója, amely az alábbiak szerint képes tárolni a húrok tömbjét:
hagyjuk intArr = (21, 34, 54, 12)
Az értékek tömbben való tárolásának képi ábrázolása az alábbiakban látható:
Minden létrehozott tömb a 0 indexből indul. Az első elem a 0 indexben van tárolva, a második elem a következő indexben (1) és így tovább.
Hogyan lehet elérni a tömb elemeit a Swiftben?
A tömb elemeihez az index szintaxisának használatával férhet hozzá, azaz A széria neve után azonnal szögletes zárójelbe kell foglalnia az elérni kívánt érték indexét.
Tegyük fel, hogy az intArr tömböt deklarálta a fentiek szerint. Az első elem intArr (0), a második elem intArr (1) és így tovább.
4. példa: Hozzáférés egy tömb elemeihez
let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3))
A program futtatásakor a kimenet a következő lesz:
21 34 54 12
A tömb elemeihez a bejövő hurkok használatával is hozzáférhet. Lásd a Swift For-in ciklust, hogy többet tudjon meg róla.
Hogyan lehet módosítani / hozzáadni a tömb elemeket a Swift-ben?
A tömb elemeit módosíthatja az al index szintaxisa és a hozzárendelés operátor használatával, vagyis szögletes zárójelbe kell foglalnia a frissíteni kívánt érték indexét a tömb neve után, amelyet a hozzárendelés operátora és az új érték követ.
5. példa: Egy tömb elemeinek módosítása
var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr)
A program futtatásakor a kimenet a következő lesz:
(12, 42, 45, 21)
A tömb összes elemét új értékekkel módosíthatja az alábbiak szerint:
6. példa: Tömb egészének módosítása
var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr)
A program futtatásakor a kimenet a következő lesz:
(1, 2, 3)
Ha azonban új elemet szeretne hozzáadni egy meglévő tömbhöz, akkor nem használhatja az index indexszintaxisát. Ha mégis megteszi, akkor hiba lesz a végén. Nem tehet ilyet:
7. példa: Új elem hozzáadása egy tömbhöz az index index szintaxisa segítségével (nem működik)
var intArr = (21, 34, 54, 12) intArr(4) = 10
A program futtatásakor a kimenet a következő lesz:
végzetes hiba: Az index tartományon kívül van
A fenti program hibát ad, miközben új elemet rendel az intArr tömbhöz. Az intArr ugyanis nem rendelt el extra memóriát a 4 indexhez, és nem tudja tárolni a megadott értéket.
Ahhoz, hogy egy tömbhöz új elemet helyesen illesszünk be, a tömb append()
metódusát használjuk. append()
az alábbi szakasz ismerteti.
Néhány hasznos beépített tömbfunkció és tulajdonság
1. isGyors
Ez a tulajdonság meghatározza, hogy egy tömb üres-e vagy sem. Akkor tér vissza, true
ha egy tömb nem tartalmaz értéket, ellenkező esetben visszatér false
.
8. példa: Hogyan működik az Empty?
let intArr = (21, 34, 54, 12) print(intArr.isEmpty)
A program futtatásakor a kimenet a következő lesz:
hamis
2. először
Ez a tulajdonság egy tömb első elemének elérésére szolgál.
9. példa: Hogyan működik először?
let intArr = (21, 34, 54, 12) print(intArr.first)
A program futtatásakor a kimenet a következő lesz:
Opcionális (21)
Hasonlóképpen, a last
tulajdonság segítségével elérheti a tömb utolsó elemét.
3. függelék
Az Append függvény az elem beillesztésére / hozzáfűzésére szolgál a tömb végén.
10. példa: Hogyan működik a függelék?
var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr)
A program futtatásakor a kimenet a következő lesz:
(21, 34, 54, 12, 32)
Az egyik tömb tartalmát egy másik tömbhöz is fűzheti:
var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr)
A program futtatásakor a kimenet a következő lesz:
(1, 2, 3, 4, 5, 6, 7, 8)
4. helyezze be
Ez a függvény az elem beillesztésére / hozzáfűzésére szolgál a tömb adott indexében.
11. példa: Hogyan működik a beszúrás?
var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr)
A program futtatásakor a kimenet a következő lesz:
(21, 22, 34, 54., 12.)
Hasonlóképpen használhatja a remove
tulajdonságot az elem eltávolításához a megadott indexnél.
5. távolítsa el
Ez a függvény eltávolítja és visszaadja a tömbből a megadott pozícióban megadott értéket.
12. példa: Hogyan működik az eltávolítás?
var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr)
A program futtatásakor a kimenet a következő lesz:
az eltávolított érték bc ("ab", "cd", "de")
Hasonlóképpen használhat olyan funkciókat is, mint removeFirst
egy tömb első elemének eltávolítása, egy tömb removeLast
utolsó elemének eltávolítása és egy tömb removeAll
kiürítése.
6. megfordítva
Ez a függvény fordított sorrendben adja vissza a tömb elemeit.
13. példa: Hogyan működik a fordított ()?
var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr)
A program futtatásakor a kimenet a következő lesz:
(24, 23, 22, 21)
7. számolni
Ez a tulajdonság a tömb összes elemének számát adja vissza.
14. példa: számlálás
let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count)
A program futtatásakor a kimenet a következő lesz:
4
Dolgok, amikre emlékezni kell
Miközben a Swift tömb elemeihez az index szintaxisát használja, meg kell győződnie arról, hogy az érték az indexben található, különben futásidejű összeomlást kap. Lássuk ezt a példában:
let intArr = (21, 34, 54, 12) print(intArr(-1))
A program futtatásakor a kimenet a következő lesz:
végzetes hiba: Az index tartományon kívül van
A fenti programban nincs érték a -1 indexben . Tehát amikor megpróbálja elérni az index értékét, futásidejű összeomlást kap.
Ennek megakadályozása érdekében először keresse meg az eltávolítani kívánt elem indexét. Ezután távolítsa el az elemet az indexről az alábbiak szerint:
var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) )
A program futtatásakor a kimenet a következő lesz:
talált index 34