У цьому підручнику ви дізнаєтесь про масиви, їх створення, доступ до значень масиву та деякі загальні операції з масивом.
У попередній статті про швидкі типи даних ми дізналися про створення змінних / констант деякого типу даних, які можуть містити одне значення.
Але що, якщо ми хочемо зберігати кілька значень одного типу даних. Ми використовуємо щось під назвою Array в Swift.
Що таке масив?
Масив - це просто контейнер, який може вміщувати кілька даних (значень) типу даних у впорядкованому списку, тобто ви отримуєте елементи в тому самому порядку, що і визначили елементи в масиві.
Масив може зберігати значення будь-якого типу даних , наприклад Int
, String
клас і т.д.
Як оголосити масив у Swift?
Ви можете створити порожній масив, вказавши тип даних у квадратних дужках ()
.
Пам'ятайте, що ви повинні включити тип у квадратні дужки, інакше Swift буде розглядати його як звичайний тип даних, і ви можете зберегти в ньому лише одне значення.
Приклад 1: Оголошення порожнього масиву
let emptyIntArr:(Int) = () print(emptyIntArr)
Коли ви запускаєте програму, результат буде:
()
У наведеній вище програмі ми оголосили константу emptyIntArr, яка може зберігати масив цілих чисел і ініціалізована значеннями 0.
АБО
Ви також можете визначити порожній масив, як показано нижче:
let emptyIntArr:Array = Array() print(emptyIntArr)
АБО
Оскільки swift - це мова виводу типів, ви також можете створювати масив безпосередньо, не вказуючи Тип даних, але повинен ініціалізуватись деякими значеннями, щоб компілятор міг вивести його тип як:
Приклад 2: Оголошення масиву з деякими значеннями
let someIntArr = (1, 2, 3, 4, 5, 6, 7, 8, 9) print(someIntArr)
Коли ви запускаєте програму, результат буде:
(1, 2, 3, 4, 5, 6, 7, 8, 9)
У наведеній вище програмі ми оголосили константу someIntArr, яка може зберігати масив Integer без явного вказівки типу. Крім того, ми ініціалізували масив зі значеннями 1, 2, 3, 4, 5, 6, 7, 8, 9 .
Приклад 3: Оголошення масиву, що містить вказану кількість одного повторного значення
Ви також можете повторити значення певну кількість разів, щоб сформувати масив у Swift. Це робиться за допомогою ініціалізатора масиву з повторенням і відліком.
let arrWithRepeatingValues = Array(repeating: "Hello, World", count: 4) print(arrWithRepeatingValues)
Коли ви запускаєте програму, результат буде:
("Привіт, Світ", "Привіт, Світ", "Привіт, Світ", "Привіт, Світ")
У наведеній вище програмі ми визначили константу arrWithRepeatingValues, яка зберігає масив рядків Hello, World і повторює те саме значення 4 рази, як зазначено в підрахунку.
Примітка: У Swift ви не можете створити масив фіксованої довжини, як це робите в інших мовах програмування. Масив із фіксованою довжиною означає, що масив не може мати більше елементів, ніж визначено під час ініціалізації.
Як значення зберігаються в масиві?
Припустимо, у вас є константа, яка може зберігати масив рядків, як показано нижче:
нехай intArr = (21, 34, 54, 12)
Наочне зображення того, як значення зберігаються в масиві, може бути показано нижче:
Усі створені масиви починаються з індексу 0. Перший елемент зберігається в індексі 0, другий елемент у наступному індексі (1) тощо.
Як отримати доступ до елементів масиву в Swift?
Ви можете отримати доступ до елементів масиву, використовуючи синтаксис індексу, тобто Вам потрібно включити індекс значення, до якого ви хочете отримати доступ, у квадратних дужках відразу після імені масиву.
Припустимо, ви оголосили масив intArr, як зазначено вище. Першим елементом є intArr (0), другим елементом є intArr (1) тощо.
Приклад 4: Доступ до елементів масиву
let intArr = (21, 34, 54, 12) print(intArr(0)) print(intArr(1)) print(intArr(2)) print(intArr(3))
Коли ви запускаєте програму, результат буде:
21 34 54 12
Ви також можете отримати доступ до елементів масиву, використовуючи цикли for-in. Докладніше про це див. У циклі Swift For-in.
Як змінити / додати елементи масиву в Swift?
Ви можете змінити елементи масиву, використовуючи синтаксис та оператор присвоєння індексу, тобто вам потрібно включити індекс значення, яке ви хочете оновити, у квадратні дужки після імені масиву, за яким слід оператор присвоєння та нове значення.
Приклад 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
Коли ви запускаєте програму, результат буде:
фатальна помилка: індекс вийшов за межі діапазону
Вищевказана програма видає помилку при призначенні нового елемента масиву intArr. Це тому, що intArr не виділив додаткову пам’ять для індексу 4 і не може зберегти задане значення.
Щоб правильно вставити новий елемент у масив, ми використовуємо append()
метод масиву . append()
описано у нижченаведеному розділі.
Деякі корисні вбудовані функції та властивості масиву
1. isEmpty
Ця властивість визначає, порожній масив чи ні. Він повертається, true
якщо масив не містить жодного значення, інакше повертає false
.
Приклад 8: Як працюєEmpty?
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)
Коли ви запускаєте програму, результат буде:
вилучене значення bc ("ab", "cd", "de")
Аналогічно, ви також можете використовувати такі функції, як removeFirst
видалення першого елемента масиву, removeLast
видалення останнього елемента масиву та removeAll
спорожнення масиву.
6. зворотний
Ця функція повертає елементи масиву в зворотному порядку.
Приклад 13: Як працює reversed ()?
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
Що слід пам’ятати
Використовуючи синтаксис індексу для доступу до елементів масиву в Swift, ви повинні бути впевнені, що значення лежить в індексі, інакше ви отримаєте збій виконання. Побачимо це на прикладі:
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