Map
Часть раздела Логика и управление потоком путешествия по Swift на Coddy. Урок 23 из 56.
map принимает замыкание и применяет его к каждому элементу, возвращая новый массив результатов. Новый массив имеет ту же длину, что и исходный.
let nums = [1, 2, 3, 4]
let doubled = nums.map { $0 * 2 }
print(doubled) // [2, 4, 6, 8]$0 — это сокращённая запись для первого параметра замыкания. В полной форме указываются имя параметра и тип return:
let doubled = nums.map { (n: Int) -> Int in
return n * 2
}map также может изменять тип элементов. Применение map к [Int] через замыкание, которое возвращает String, даёт вам [String]:
let labels = nums.map { "#\($0)" }
print(labels) // ["#1", "#2", "#3", "#4"]Задание
ЛегкоПрочитайте одну строку ввода: разделённый запятыми список целых чисел (температур по Фаренгейту).
Преобразуйте каждое число в градусы Цельсия по формуле C = (F - 32) * 5 / 9 с использованием целочисленной арифметики (усечение к нулю, без десятичных знаков). Выведите отдельными строками:
- Температуры по Цельсию, соединённые с помощью
, - По одной метке для каждой температуры с префиксом
F=<f> C=<c>, соединённые с помощью;
Используйте map для обеих строк.
Для ввода 32,212,98,0 вывод будет таким:
0,100,36,-17
F=32 C=0;F=212 C=100;F=98 C=36;F=0 C=-17Попробуйте сами
let f = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: строка 1 = celsius, соединённые через ","
// TODO: строка 2 = метки "F=<f> C=<c>", соединённые через ";"
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Подсчет и индексыРегистр и удаление пробеловПоиск в строкахРазделение и объединениеЗамена подстрокИтоги — Проверка имени пользователя4Множества
Создание множествОбъединение и пересечениеРазность и симметрическая разностьПодмножество и надмножествоИтоги — Фильтр тегов7Проект — Трекер привычек
Обзор проектаОтметить выполнение10Проект — Движок викторины
Обзор проектаЗадаем вопросы2Диапазоны и шаги
Закрытые и полуоткрытыеШагМетоды диапазоновДиапазоны в SwitchИтоги: Сетка календаряПотренируйтесь самостоятельно: Песочница Swift