Свифт Арраис: Како га користити и зашто? (Са примерима)

У овом упутству ћете научити о низовима, стварању, приступу вредностима низа и неким уобичајеним операцијама у низу.

У претходном чланку Свифт Дата Типес сазнали смо о стварању променљивих / константи неког типа података који могу да садрже једну вредност.

Али, шта ако желимо да сачувамо више вредности истог типа података. У Свифту користимо нешто што се зове Арраи .

Шта је низ?

Низ је једноставно контејнер који може да садржи више података (вредности) типа података на уређеној листи, односно добијате елементе истим редоследом као што сте дефинисали ставке у низу.

Низ може чувати вредности било ког типа података, нпр Int. String, Класе итд.

Како прогласити низ у Свифту?

Можете створити празан низ специфицирањем типа података унутар угластих заграда ().

Запамтите, тип морате да уврстите у углате заграде, иначе ће га Свифт третирати као нормалан тип података и у њега можете да сместите само једну вредност.

Пример 1: Декларација празног низа

 let emptyIntArr:(Int) = () print(emptyIntArr) 

Када покренете програм, излаз ће бити:

 ()

У горњем програму смо прогласили константу емптиИнтАрр која може похранити низ целих бројева и иницијализована са 0 вредности.

ИЛИ

Такође можете дефинисати празан низ као испод:

 let emptyIntArr:Array = Array() print(emptyIntArr) 

ИЛИ

Будући да је свифт језик за закључивање типова, низ можете да креирате и директно без навођења типа података, али мора да се иницијализује неким вредностима како би компајлер могао да закључи о његовом типу као:

Пример 2: Декларисање низа са неким вредностима

 let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr) 

Када покренете програм, излаз ће бити:

 (1, 2, 3, 4, 5, 6, 7, 8, 9)

У горе наведеном програму прогласили смо константу сомеИнтАрр која може сместити низ Интегер-а без експлицитног навођења типа. Такође, иницијализовали смо низ са вредностима 1, 2, 3, 4, 5, 6, 7, 8, 9 .

Пример 3: Декларација низа који садржи наведени број једне поновљене вредности

Такође можете поновити вредност одређени број пута да бисте формирали низ у Свифту. То се постиже употребом иницијализатора низа са понављањем и бројањем.

 let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues) 

Када покренете програм, излаз ће бити:

 („Здраво, свет“, „здраво, свет“, „здраво, свет“, „здраво, свет“)

У горе наведеном програму дефинисали смо константу аррВитхРепеатингВалуес која чува низ низа Хелло, Ворлд и понавља исту вредност 4 пута како је наведено у бројању.

Напомена: У Свифту не можете створити низ фиксне дужине као што то радите у другим програмским језицима. Низ фиксне дужине значи да низ не може имати више елемената него што дефинишете током иницијализације.

Како се вредности чувају у низу?

Претпоставимо да имате константу која може да ускладишти низ низова као доле:

 нека интАрр = (21, 34, 54, 12)

Сликовни приказ како се вредности чувају у низу може се приказати у наставку:

Сви низови које креирате започињу индексом 0. Први елемент се чува у индексу 0, други елемент у следећем индексу (1) и тако даље.

Како приступити елементима низа у Свифту?

Елементима низа можете приступити користећи синтаксу индекса, тј. Морате да уврстите индекс вредности којој желите да приступите у углате заграде одмах иза имена низа.

Претпоставимо да сте прогласили низ интАрр као горе. Први елемент је интАрр (0), други елемент је интАрр (1) и тако даље.

Пример 4: Приступ елементима низа

 let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3)) 

Када покренете програм, излаз ће бити:

 21 34 54 12 

Елементима низа такође можете приступити помоћу петљи за улазак. Погледајте петљу Свифт Фор-ин да бисте сазнали више о томе.

Како изменити / додати елементе низа у Свифт-у?

Елементе низа можете модификовати користећи синтаксу индекса и оператор доделе, тј. Морате додати индекс вредности коју желите да ажурирате у углате заграде након имена низа, затим оператора доделе и нове вредности.

Пример 5: Измена елемената низа

 var intArr = (21, 34, 54, 12) intArr(0) = 12 intArr(1) = 42 intArr(2) = 45 intArr(3) = 21 print(intArr) 

Када покренете програм, излаз ће бити:

 (12, 42, 45, 21)

Такође можете да измените све елементе низа новим вредностима као што је приказано доле:

Пример 6: Измена низа у целини

 var intArr = (21, 34, 54, 12) intArr = (1,2,3) print(intArr) 

Када покренете програм, излаз ће бити:

 (1, 2, 3)

Међутим, да бисте додали нови елемент у постојећи низ, не можете користити синтаксу индекса. Ако то учините, на крају ћете добити грешку. Не можете учинити нешто овако:

Пример 7: Додавање новог елемента у низ користећи синтаксу индекса (не ради)

 var intArr = (21, 34, 54, 12) intArr(4) = 10 

Када покренете програм, излаз ће бити:

 фатална грешка: индекс ван опсега

Горњи програм даје грешку приликом додељивања новог елемента низу интАрр. То је зато што интАрр није додијелио додатну меморију за индекс 4 и не може похранити дату вриједност.

Да бисмо правилно уметнули нови елемент у низ, користимо append()методу низа . append()је описано у одељку у наставку.

Неке корисне уграђене функције и својства низа

1. исЕмпти

Ово својство одређује да ли је низ празан или не. Враћа се trueако низ не садржи никакву вредност, иначе се враћа false.

Пример 8: Како функционишеЕмпти?

 let intArr = (21, 34, 54, 12) print(intArr.isEmpty) 

Када покренете програм, излаз ће бити:

 лажно

2. прво

Ово својство се користи за приступ првом елементу низа.

Пример 9: Како прво функционише?

 let intArr = (21, 34, 54, 12) print(intArr.first) 

Када покренете програм, излаз ће бити:

 Необвезно (21)

Слично томе, lastсвојство можете користити за приступ последњем елементу низа.

3. придодати

Функција додавања користи се за уметање / додавање елемента на крају низа.

Пример 10: Како функционише додатак?

 var intArr = (21, 34, 54, 12) intArr.append(32) print(intArr) 

Када покренете програм, излаз ће бити:

 (21, 34, 54, 12, 32)

Садржај једног низа такође можете додати другом низу као:

 var firstArr = (1,2,3,4) var secondArr = (5,6,7,8) firstArr.append(contentsOf: secondArr) print(firstArr) 

Када покренете програм, излаз ће бити:

 (1, 2, 3, 4, 5, 6, 7, 8)

4. уметак

Ова функција се користи за уметање / додавање елемента на одређени индекс низа.

Пример 11: Како уметак ради?

 var intArr = (21,34,54,12) intArr.insert(22, at: 1) print(intArr) 

Када покренете програм, излаз ће бити:

 (21, 22, 34, 54, 12)

Слично томе, такође можете користити removeсвојство за уклањање елемента у наведеном индексу.

5. уклонити

Ова функција уклања и враћа вредност наведену на наведеном положају из низа.

Пример 12: Како уклањање делује?

 var strArr = ("ab","bc","cd","de") let removedVal = strArr.remove(at: 1) print("removed value is (removedVal)") print(strArr) 

Када покренете програм, излаз ће бити:

 уклоњена вредност је бц ("аб", "цд", "де") 

Слично томе, такође можете користити функције попут removeFirstуклањања првог елемента низа, removeLastуклањања последњег елемента низа и removeAllпражњења низа.

6. обрнуто

Ова функција враћа елементе низа у обрнутом редоследу.

Пример 13: Како обрнуто () делује?

 var intArr = (21,22,23,24) let reversedArr = Array(intArr.reversed()) print(reversedArr) 

Када покренете програм, излаз ће бити:

 (24, 23, 22, 21)

7. рачунати

Ово својство враћа укупан број елемената у низу.

Пример 14: рачунај

 let floatArr = (10.2,21.3,32.0,41.3) print(floatArr.count) 

Када покренете програм, излаз ће бити:

 4

Ствари које треба запамтити

Док користите синтаксу индекса за приступ елементима низа у Свифту, морате бити сигурни да вредност лежи у индексу, у супротном ћете добити рунтиме рунтиме. Погледајмо ово на примеру:

 let intArr = (21, 34, 54, 12) print(intArr(-1)) 

Када покренете програм, излаз ће бити:

 фатална грешка: индекс ван опсега

У горњем програму нема вредности у индексу -1 . Дакле, када покушате да приступите вредности у индексу добићете рунтиме рунтиме.

Да бисте то спречили, прво пронађите индекс елемента који покушавате да уклоните. А затим уклоните елемент у индексу као доле:

 var intArr = (21, 34, 54, 12) if let index = intArr.index(of: 34) ( print("found index") let val = intArr.remove(at: index) print(val) ) 

Када покренете програм, излаз ће бити:

 пронађен индекс 34 

Занимљиви Чланци...