Шаблоны итерации и изменяемость
Изучите распространённые шаблоны перебора массивов, словарей и множеств, используйте индексы и 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 — локальная установка не требуется.
Все уроки этого курса
- Массивы, словари и множества
- Множества — принадлежность и операции
- Шаблоны итерации и изменяемость