Swift tömbök: Hogyan kell használni és miért? (Példákkal)

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, trueha 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 lasttulajdonsá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 removetulajdonsá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 removeFirstegy tömb első elemének eltávolítása, egy tömb removeLastutolsó elemének eltávolítása és egy tömb removeAllkiü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 

érdekes cikkek...