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 }
//

Спасибо

Я пишу о разработке программного обеспечения, кофе и общих темах. Большое спасибо, что следите за мной и моими историями. Рад, что вы здесь, и хотел бы, чтобы это стоило вашего времени.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *