Операторы последовательностей
Часть раздела Основы путешествия по Swift на Coddy — урок 75 из 86.
Swift предоставляет полезные встроенные свойства и методы, которые позволяют быстро собирать информацию о массивах без написания циклов. Эти операторы последовательностей помогают выполнять распространенные вычисления с минимальным количеством кода.
Свойство count возвращает количество элементов в массиве:
let scores = [85, 92, 78, 90]
print(scores.count) // 4Для числовых массивов Swift предлагает методы для поиска наименьшего и наибольшего значений. Методы min() и max() возвращают опционалы, так как пустой массив не имеет минимума или максимума:
let temperatures = [72, 68, 75, 80, 65]
if let lowest = temperatures.min() {
print(lowest) // 65
}
if let highest = temperatures.max() {
print(highest) // 80
}Чтобы вычислить сумму всех элементов, используйте метод reduce. Он объединяет все значения, начиная с начального значения:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 600 — это начальное значение, а + указывает Swift прибавлять каждый элемент к текущей сумме. Комбинируя эти операторы, вы можете легко вычислить среднее значение:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86Задание
ЛегкоНапишите функцию analyzeScores, которая принимает scores и возвращает строку со сводной статистикой по массиву.
Используйте операторы последовательностей для вычисления количества, минимума, максимума и среднего значения оценок, а затем объедините их в одну строку сводки.
Логика:
- Получите общее количество элементов с помощью
count - Найдите минимальное значение с помощью
min() - Найдите максимальное значение с помощью
max() - Вычислите сумму с помощью
reduce(0, +)и разделите на количество, чтобы получить среднее значение - Верните отформатированную строку со всей статистикой
Параметры:
scores([Int]): Массив целых чисел (гарантированно содержит хотя бы один элемент)
Возвращает: Отформатированную строку, содержащую статистику (String). Формат: "Count: X, Min: X, Max: X, Avg: X"
Пример: Если scores равен [85, 90, 78, 92], функция должна вернуть "Count: 4, Min: 78, Max: 92, Avg: 86".
Примечание: Среднее значение должно быть вычислено с использованием целочисленного деления (без десятичных знаков).
Шпаргалка
Swift предоставляет встроенные свойства и методы для работы с массивами без написания циклов.
Свойство count возвращает количество элементов:
let scores = [85, 92, 78, 90]
print(scores.count) // 4Методы min() и max() находят наименьшее и наибольшее значения. Они возвращают опционалы, так как пустые массивы не имеют минимума или максимума:
let temperatures = [72, 68, 75, 80, 65]
if let lowest = temperatures.min() {
print(lowest) // 65
}
if let highest = temperatures.max() {
print(highest) // 80
}Метод reduce вычисляет общую сумму, объединяя все значения, начиная с начального значения:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 60Вычислите среднее значение, комбинируя reduce с count:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86Попробуйте сами
func analyzeScores(scores: [Int]) -> String {
// Напишите код здесь
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСоставное присваиваниеПовторение: Простая математикаОператоры сравнения7Основы ввода-вывода
Функция PrintИнтерполяция строкВвод через ReadLineПреобразование типовПовторение — до 120Повторение — True или False10Функции
Объявление функцииПараметры и аргументыВозвращаемые значенияМетки аргументовПовторение: функция SigmaПовторение: функция валидацииЗначения по умолчанию13Итерирование по последовательностям
Итерирование по элементамМетод enumerateИтерирование по строкам, ч. 1Итерирование по строкам, ч. 22Переменные
Let против VarАннотации типовЧислаСтрокиBooleanСоглашения об именованииИтоги — Инициализация переменных5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение: простая логикаЛогические операторы. Часть 3Тернарный оператор8Калькулятор разделения счета
Приветственное сообщениеПолучение ввода14Массивы: Продвинутый уровень
Срезы массивов. Часть 1Срезы массивов. Часть 2Операторы последовательностейМетод Contains3Опционалы
Что такое опционалыРазвертывание с помощью if letGuard letОператор объединения с nilИтоги — безопасное развертывание6Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторОператор SwitchSwitch с диапазонами9Циклы
Цикл For-InЦикл WhileЦикл Repeat-WhileBreakContinueПовторение: ФакториалДиапазоны в циклахВложенные циклыПовторение: Динамический ввод