Ответ
Функция в Swift — это самодостаточный блок кода, выполняющий конкретную задачу. Она объявляется ключевым словом func, может принимать входные параметры, выполнять операции и возвращать результат.
Базовый синтаксис:
func имяФункции(параметр1: Тип, параметр2: Тип) -> ВозвращаемыйТип {
// Тело функции
return значение
}
Расширенный пример с ключевыми возможностями Swift:
// Функция с внешним/внутренним именами, значением по умолчанию и меткой опускания
func calculateArea(for width: Double, and height: Double = 10.0) -> Double {
return width * height
}
let area1 = calculateArea(for: 5.0, and: 8.0) // 40.0
let area2 = calculateArea(for: 5.0) // 50.0 (height = 10.0 по умолчанию)
// Функция, возвращающая кортеж (множество значений)
func minMax(of array: [Int]) -> (min: Int, max: Int)? {
guard !array.isEmpty else { return nil }
return (array.min()!, array.max()!)
}
// Функция как объект первого класса (first-class citizen)
let operation: (Double, Double) -> Double = calculateArea
let result = operation(3.0, 4.0) // 12.0
Важные особенности функций в Swift:
- Параметры: Могут иметь как внутренние (для использования в теле), так и внешние (для вызова) имена. Используется
_для опускания внешнего имени. - Возвращаемое значение: Может отсутствовать (
-> Void), быть одним значением, кортежем или опциональным типом. - Функции как типы: Функции можно присваивать переменным, передавать как аргументы в другие функции (колбеки) и возвращать из функций (замыкания высшего порядка).
- Способы передачи параметров:
inout— для сквозных параметров, изменяющих переданную переменную.- По умолчанию — все параметры являются константами (
let). Для изменения создается локальная копия.