Наиболее полезные методы Array для упрощения нашего кода разработки

Каждый должен быть знаком с Коллекцией Swift, включая Array, Set и Dictionary. Эти три типа очень полезны в разработке для iOS для хранения данных в форме сбора.

В этой статье мы обсудим полезные методы, которые можно использовать для Array. В массиве хранятся данные одного типа в упорядоченном списке, а его элементы доступны по индексу, начиная с нуля. Он может храниться с различными типами данных (Int, String, Double, Any, Optional и т. Д.), А также с любым типом определяемого пользователем класса или структуры.

Базовый синтаксис

Прежде чем мы рассмотрим каждый метод, давайте немного изменим базовый синтаксис Array. См. Код ниже с пояснениями в комментариях.

Ниже приведен код, показывающий массив с объектами. Мы будем работать над этими образцами данных для каждой обсуждаемой функции. Отлично!

1. Получение первого и последнего элемента

Без этих first() и last() обычно мы будем использовать index 0 и N-1 для доступа к первому и последнему элементу. где N - общее количество элементов в массиве.

С условием

Это просто правда. Но как, если мы хотим получить от Array первый результат с «оценкой менее 50». Да, мы все еще используем метод first(), но на этот раз с закрытием where, содержащим конкретное условие. Мы также можем применить то же условие закрытия к методу last().

См. Приведенный выше код, $0 - это первый сокращенный аргумент, переданный во встроенное закрытие. В данном случае переданным аргументом является объект «Студент». В следующих разделах мы продолжим использовать встроенное закрытие с $0 и $1.

Сокращенный аргумент хорошо объяснен в документации Swift.

Swift автоматически предоставляет сокращенные имена аргументов для встроенных замыканий, которые можно использовать для ссылки на значения аргументов замыкания по именам $0, $1, $2 и так далее.

2. Преобразование массива с помощью карты

В этом разделе мы будем использовать метод map(). Ниже приведены 3 разных массива, отображаемых из students (массив Int, String и User).

3. CompactMap

Он похож на метод map, но используется, когда мы хотим получить результат с необязательными элементами. В приведенном ниже примере мы получим список местоположений студентов. Посмотрите разницу вывода между map() и compactMap().

4. Сортировка по условию

В этом примере массив студентов сначала сортируется по score, а затем отображается в массив String (имя отсортированного студента).

5. Фильтрация

filter() используется для поиска совпадающих элементов на основе заданного условия внутри замыкания. Давайте попробуем составить список студентов с оценкой выше 50. Во-вторых, мы получим список студентов мужского пола.

6. Получение максимальной и минимальной ценности

Обычный способ получить наибольшее или наименьшее значение - использовать метод sort() с first() или last(). Однако Swift предлагает более простое решение, использующее методы max() и min() для достижения аналогичного результата.

Из приведенного выше изображения мы знаем, что порядок сортировки увеличивается, а это означает, что наше условие должно быть написано для получения значений от маленького до большого числа.

7. Удалить элемент массива с определенным условием.

В Swift for Array есть несколько методов удаления. Чтобы удалить элемент или несколько элементов с указанным условием, мы можем использовать эти два метода.

  1. removeAll(where:)
  2. Более длинное решение, используя firstIndex для поиска индекса вхождения, затем вызовите remove(at:), чтобы удалить элемент по определенному индексу.

Обратите внимание, что removeAll() удалит все элементы, соответствующие условию, а не элемент.

Всем отличная работа!

Вы можете попробовать реализовать это в своих проектах, и, надеюсь, эта статья поможет вам улучшить свои навыки разработки. Спасибо за чтение и, пожалуйста, поделитесь этим со своими друзьями. Отзывы приветствуются. Удачного кодирования!

«Учись, вот как мы развиваем свои навыки программирования».

использованная литература

Https://docs.swift.org/swift-book/LanguageGuide/CollectionTypes.html

Https://docs.swift.org/swift-book/LanguageGuide/Closures.html