14 полезных операторов массивов в Swift

Массивы позволяют объединять большое количество значений в одну коллекцию, а затем получать доступ к этим значениям в зависимости от того, где они находятся в коллекции. Swift использует вывод типа для определения типа данных в массиве.

Объявление массива:

var arr = [2,3,5] 
var arr: [Int] = []
var arr = Array(repeating: 8, count: 3)

1. Добавление в массив

Вы можете добавить в конец массива или вставить значение по определенному индексу. Для добавления можно использовать команду append или сокращенный оператор +=, как показано ниже:

arr.append(5)
arr += [5]

Для этой задачи эти два утверждения функционально равны. Следует иметь в виду, что для использования оператора += справа должен быть массив, даже если он содержит только одно значение. Однако, если вы хотите добавить в массив более одного элемента, вы просто добавляете к этому литералу массива, таким образом, вы можете добавить больше значений в массив следующим образом:

обр += [9, 8, 7, 6]

[5, 5, 9, 8, 7, 6] теперь находятся в (теперь неловко называемом) arr (поскольку мы добавили к нему две пятерки ранее).

Команду вставки также можно использовать для вставки значения в произвольное место, например:

arr.insert(92, at: 2)
//arr now is [5, 5, 92, 9, 8, 7, 6]

2. Удаление из массива

Вы также можете удалить элементы из массива. Если мы хотим удалить что-то из данного индекса, мы можем сделать это:

let removedValue = arr.remove(at: 3)
//emptyArray now is [5, 5, 92, 8, 7, 6]
removedValue is 9

С помощью команды remove(at:) мы удалили 9 из индекса 3. У нее также есть дополнительная возможность вернуть удаленное значение, которое мы сохранили в removeValue. Если вы хотите удалить только значение, это можно проигнорировать и Команда insert:atIndex: явно противоположна этому.

Команда removeLast обратна команде add, как показано ниже:

let removedLastValue = emptyArray.removeLast()
//emptyArray now is [5, 5, 92, 8, 7]
//removedLastValue is 6

Как и команда removeAtIndex, она также возвращает свое значение, которое мы сохранили в переменной removeLastValue.

Разве это тоже не было пустым массивом? Давайте просто избавимся от всего:

arr.removeAll()
//arr is empty

3. Считать

Чтобы получить размер массива в Swift, используйте функцию подсчета массива.

let count = arr.count
//arr is [5, 5, 92, 8, 7]
//count = 5

4. Пусто

Чтобы проверить, пуст ли массив, используйте функцию Swift isEmpty для массива.

let count = arr.count
//arr is [5, 5, 92, 8, 7]
//count = 5

5. Проверьте, присутствует ли конкретный элемент

arr.contains(5) //true or false

6. Получить последний элемент массива

Array.last возвращает последний элемент этого массива. Если массив пуст, то это свойство возвращает nil.

arr.last

7. Получить случайный элемент из массива

Array.randomElement() возвращает элемент, который выбирается случайным образом из элементов этого массива. Если массив пуст, то этот метод возвращает nil.

var random = arr.randomElement()

8. Равенство

В Swift используйте оператор Equal To ==, чтобы увидеть, равны ли два массива. Если два массива содержат одни и те же элементы в одном и том же порядке, оператор Equal To возвращает логическое значение. Оператор возвращает true, если два массива равны, или false, если они не равны.

arr1 == arr2 //true or false

9. Найдите минимум

var min = arr.min() //value if has min, nil if arr is empty

10. Найдите максимум

var max = arr.max() //value if has max, nil if arr is empty

11. Удалить первые N элементов

var result = arr.dropFirst(2) 
or 
var result = arr.dropFirst()

12. Удалить последние N элементов

var result = arr.dropLast(2) 
or 
var result = arr.dropLast()

13.Сортировка в порядке возрастания массива Int

arr.sort()

14. Элементы фильтра на основе состояния

let result = arr.filter { if statement }

Например,

let result = arr.filter { $0 > 2 } 
or 
let result = arr.filter { $0%2 == 0 } 
or 
let result = arr.filter { $0%2 == 1 } 

Вы можете прочитать больше статей о Swift:

A comprehensive guide to collection types in swift

5 Tips for Using Opaque Types in Swift

Reference vs Value Types

Спасибо

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