0Pricing
Swift Academy · Урок

Шаблоны итерации и изменяемость

Изучите распространённые шаблоны перебора массивов, словарей и множеств, используйте индексы и enumerated(), а также разберитесь с изменяемостью через let и var и основами копирования при записи.

«Шаблоны итерации и изменяемость» — бесплатный урок Swift Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 3 уроков всего.

Зачем нужны перебор и изменяемость?

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

Перебор элементов массива

Цикл по элементам перебирает элементы напрямую; для массивов это простой и понятный подход.

let nums = [10, 20, 30]
for n in nums {
    print("value:", n)
}

enumerated()

Используйте enumerated(), чтобы получать пары (индекс, значение) во время перебора.

let letters = ["a","b","c"]
for (i, ch) in letters.enumerated() {
    print(i, ch)   // 0 a, 1 b, 2 c
}

Словарь и множество

Словари возвращают пары (ключ, значение). Множества неупорядочены — используйте sorted() для стабильного вывода.

let ages = ["Ada": 20, "Bob": 25]
for (name, age) in ages {
    print(name, age)
}

let colors: Set<String> = ["red", "green", "blue"]
for c in colors.sorted() {       // sort for stable order
    print(c)
}

Индексы и срезы

Используйте startIndex, endIndex и получение следующего индекса для доступа по индексам. Срезы являются представлениями ArraySlice.

let arr = [5,6,7,8]
var i = arr.startIndex
while i < arr.endIndex {
    print("arr[", i, "] =", arr[i])
    i = arr.index(after: i)
}
let slice = arr[1...2]      // ArraySlice
print("slice", slice)

Изменяемость и COW

Изменяемость: объявляйте коллекцию как переменную, чтобы изменять её. Коллекции используют копирование при записи — копии почти не требуют затрат, пока их не изменяют.

let fixed = [1,2,3]
// fixed.append(4) // error: cannot use mutating member on immutable value

var bag = [1,2,3]
bag.append(4)           // ok
var bagCopy = bag       // COW: cheap copy until either changes
bagCopy[0] = 9
print("bag", bag, "copy", bagCopy)

Правило изменяемости

Быстрая проверка: какое объявление позволяет изменять коллекцию?

Итоги

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

Часто задаваемые вопросы

Урок «Шаблоны итерации и изменяемость» бесплатный?

Да — полный текст урока «Шаблоны итерации и изменяемость» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 3 уроков всего.

Чему я научусь в уроке «Шаблоны итерации и изменяемость»?

Изучите распространённые шаблоны перебора массивов, словарей и множеств, используйте индексы и enumerated(), а также разберитесь с изменяемостью через let и var и основами копирования при записи. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Шаблоны итерации и изменяемость»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Массивы, словари и множества
  2. Множества — принадлежность и операции
  3. Шаблоны итерации и изменяемость
← Назад к Swift Academy