14 полезных операторов для работы с массивами в Swift
Перевод статьи https://medium.com/@rashadsh/14-useful-array-operators-in-swift-dac130d41a4a
Массивы позволяют объединять большое количество значений в одну коллекцию, а затем получать доступ к этим значениям в зависимости от того, где они находятся в коллекции. Swift использует вывод типа для определения типа данных в массиве.
Объявление массива:
// let arr: [Int] = [] // пустой массив let arr = Array(repeating: 8, count: 3) // [8, 8, 8] let arr = [2,3,5] //
1. Добавление в массив
Вы можете добавить в конец массива или вставить значение по определенному индексу. Для добавления можно использовать команду append или сокращенный оператор +=, как показано ниже:
// arr.append(5) arr += [5] //
Для этой задачи эти два утверждения функционально равны. Следует иметь в виду, что для использования оператора += справа должен быть массив, даже если он содержит только одно значение. Однако, если вы хотите добавить в массив более одного элемента, вы можете сделать это следующим образом:
// arr += [9, 8, 7, 6] //
[5, 5, 9, 8, 7, 6] теперь находятся в массиве arr (поскольку мы добавили к нему две пятерки ранее).
Команду insert можно использовать для вставки значения в произвольное место, например:
// arr.insert(92, at: 2) // массив arr содержит элементы [5, 5, 92, 9, 8, 7, 6] //
2. Удаление из массива
Вы также можете удалить элементы из массива. Если мы хотим удалить элемент по индексу, мы можем сделать это:
// // массив arr содержит элементы [5, 5, 92, 9, 8, 7, 6] let removedValue = arr.remove(at: 3) // массив arr теперь содержит элементы [5, 5, 92, 8, 7, 6] // removedValue = 9 //
С помощью команды remove(at:) мы удалили элемент 9 по индексу 3(пр. пер. – индексация в массиве начинается с 0). У нее также есть дополнительная возможность вернуть удаленное значение, которое мы сохранили в removeValue. Если вы хотите только удалить элемент, возвращаемое значение можно проигнорировать, команда insert:atIndex: явно противоположна этому.
Команда removeLast обратна операции добавления, как показано ниже:
// // массив arr содержит элементы [5, 5, 92, 8, 7, 6] let removedLastValue = arr.removeLast() // массив arr теперь содержит элементы [5, 5, 92, 8, 7] // removedLastValue = 6 //
Как и команда removeAtIndex, она также возвращает свое значение, которое мы сохранили в переменной removeLastValue.
Можно ли сделать массив пустым? Давайте просто избавимся от всего:
// arr.removeAll() // массив arr пуст //
3. Длина/размерность массива
Чтобы получить размер массива в Swift, используйте count.
// let arr: [Int] = [5, 5, 92, 8, 7] let count = arr.count // count = 5 //
4. Проверка на пустоту
Чтобы проверить, пуст ли массив, используйте isEmpty для массива.
// let arr: [Int] = [5, 5, 92, 8, 7] let isEmpty = arr.isEmpty // isEmpty = false //
5. Проверка наличия значения
// arr.contains(5) // true или false //
6. Получение последнего элемента массива
Array.last возвращает последний элемент этого массива. Если массив пуст, то это свойство возвращает nil.
// let arr: [Int] = [5, 5, 92, 8, 7] let last = arr.last // last = 7 //
7. Получить случайный элемент из массива
Array.randomElement() возвращает элемент, который выбирается случайным образом из элементов этого массива. Если массив пуст, то этот метод возвращает nil.
// let random = arr.randomElement() //
8. Равенство
В Swift используйте оператор ==, чтобы увидеть, равны ли два массива. Оператор == проверяет два массива на содержание одних и тех же элементов в одном и том же порядке и возвращает логическое значение. Оператор возвращает true, если два массива равны, или false, если они не равны.
// let arr1: [Int] = [1, 2] let arr2: [Int] = [1, 2] let isEqual = arr1 == arr2 // true // let arr1: [Int] = [1, 2] let arr2: [Int] = [2, 1] let isEqual = arr1 == arr2 // false //
9. Поиск минимума
// let min = arr.min() // либо минимальное значение, либо nil, если массив пуст //
10. Поиск максимума
// let max = arr.max() // либо максимальное значение, либо nil, если массив пуст //
11. Удаление первых N элементов
// let result = arr.dropFirst(2) // let result = arr.dropFirst() //
12. Удаление последних N элементов
// let result = arr.dropLast(2) // let result = arr.dropLast() //
13. Сортировка по возрастанию
// arr.sort() //
14. Фильтрация элементов по условию
// let result = arr.filter { if statement } //
Для примера:
// let result = arr.filter { $0 > 2 } // let result = arr.filter { $0%2 == 0 } // let result = arr.filter { $0%2 == 1 } //
Спасибо
Я пишу о разработке программного обеспечения, кофе и общих темах. Большое спасибо, что следите за мной и моими историями. Рад, что вы здесь, и хотел бы, чтобы это стоило вашего времени.