Массивы в программировании на Swift: разбираемся с Arrays

Массивы являются фундаментальными строительными блоками любых приложений. В этой статье вы узнаете, как можно использовать массивы в программировании на 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.

Читайте также:
Комментарии (1)
Добавить комментарий

Ваш адрес email не будет опубликован.