Массивы являются фундаментальными строительными блоками любых приложений. В этой статье вы узнаете, как можно использовать массивы в программировании на Swift. Мы обсудим, как создавать массивы, как изменять массивы путем добавления, удаления и замены элементов, а также как перебирать элементы массива с помощью цикла for.
Создание массива
В программировании массивы представляют собой коллекции элементов одного типа. Рассмотрим синтаксис для создания массива.
let names = ["Arthur", "Ford", "Trillian", "Zaphod", "Marvin"] print(names) // ["Arthur", "Ford", "Trillian", "Zaphod", "Marvin"]
В приведенном выше коде мы создаем массив и присваиваем его константе names.
Массив начинается с открывающей квадратной скобки [, за которой следует ни одного, один или несколько элементов и закрывающая квадратная скобка ].
let months: [String] = ["January", "February", "March"] let scores: [Int] = [1, 5, 11, 18] let fractions: [Double] = [1/2, 2/3, 3/4, 4/5, 5/6]
Массивы имеют фиксированные типы, как и любая другая переменная в Swift. Это означает, что каждый элемент в массиве имеет один и тот же тип, который нельзя изменить после создания массива.
В приведенных выше примерах, каждый элемент имеет тип: String, Int и Double. Следовательно, массвы months, scores и fraction имеют соответственно типы [String], [Int] и [Double]. Благодаря выводу типа в Swift нам не нужно явно указывать тип массива при его создании.
Как можно создать пустой массив?
let score = [Int]() print(score) // []
В приведенном выше примере мы используем тип массива вместе с круглыми скобками. Это называется инициализатором.
Удаление и добавление элементов в массив
Массивы – это коллекция элементов одного типа. Каждый элемент имеет числовой индекс, начиная с 0. Вернемся к первому примеру:
var names = ["Arthur", "Ford", "Trillian", "Zaphod", "Marvin"] print(names)
Если мы выпишем индексы и значения, мы получим:
0: Arthur 1: Ford 2: Trillian 3: Zaphod 4: Marvin
Вот, как мы можем добавить элемент в конец массива:
names.append("Eddie")
Мы используем функцию append(_:), чтобы добавить новый элемент в конец массива. Добавляемый элемент должен иметь тот же тип, что и другие элементы в коллекции.
Вы также можете использовать оператор присваивания:
names += ["Heart of Gold"]
Для удаления элемента из массива мы используем:
names.remove(at: 2)
Это удалит элемент “Trillian” из массива, потому что этот элемент имеет индекс 2.
Хотя “Trillian” является третьим элементом в массиве names, тем не менее, он имеет индекс 2, потому что массивы имеют нулевую индексацию. Каждый массив начинаются с индекса 0, поэтому любой n-й элемент имеет индекс n – 1.
Вставка элементов в массив аналогична удалению элементов:
names.insert("Humma Kavula", at: 4)
Этот код вставит новое имя в индекс 4. Это означает, что элемент, который был в позиции 4, теперь сместится на одну позицию вправо.
Получение и изменение элементов массива
Вы можете получить значение элемента массива с помощью его индекса:
var names = ["Arthur", "Ford", "Trillian", "Zaphod", "Marvin"] let user = names[2] print(user) // Trillian
Мы также можем использовать данный синтаксис для изменения массива:
names[2] = "Prostetnic Vogon Jeltz"
Перебор значений массива с помощью цикла
Давайте для начала рассмотрим некоторые полезные свойства массива:
- array.count – возвращает количество элементов в массиве
- array.first – возвращает первый элемент массива
- array.last – возвращает последний элемент массива
- array.isEmpty – возвращает true, если массив пустой
Цикл for позволит нам последовательно перебрать все элементы массива:
let names = ["Arthur", "Ford", "Trillian", "Zaphod", "Marvin"] for name in names { print(name) } // Arthur // Ford // Trillian // Zaphod // Marvin
Приведенный выше код выведет каждый элемент names. Внутри тела цикла for вы можете использовать локальную константу name в качестве текущего элемента. Каждый раз, когда цикл запускается, элемент из коллекции names назначается константе name и выполняется тело цикла. Это позволит вам выполнить некоторый код для каждого элемента в коллекции.
Допустим, вы хотите рассчитать средний балл за экзамен:
let scores = [8, 7, 9, 3, 4, 9, 7, 5, 8, 3, 5] var sum = 0 for score in scores { sum += score } let average = Double(sum) / Double(scores.count) print(average)
Мы создаем массив scores с баллами за экзамен от 1 до 10. Мы также инициализируем переменную var и присваиваем ей значение 0. Затем мы перебираем каждый элемент в массиве с помощью константы score. Далее присваиваем полученные значения переменной sum с помощью оператора +=. В конце мы делим сумму баллов на количество баллов, что дает нам средний балл.
Давайте рассмотрим еще один пример:
var names = ["Arthur", "Ford", "Trillian", "Zaphod", "Marvin"] var reversed = [String]() for name in names { reversed.append(String(name.reversed())) } print(reversed) // ["ruhtrA", "droF", "naillirT", "dohpaZ", "nivraM"]
Сначала мы инициализируем два массива names и reversed. Оба они имеют тип [String]. Затем мы перебираем элементы массива names с помощью цикла, далее используем функцию reversed() для получения обратной последовательности символов и добавляем полученный результат в массив reversed.
Спасибо большое! отличный блог!