Что такое функция первого класса в Swift?

«Что такое функция первого класса в Swift?» — вопрос из категории Swift Core, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Swift функция первого класса — это функция, которую можно:

  • Присвоить переменной или константе.
  • Передать в качестве аргумента другой функции.
  • Вернуть как результат из функции.

Это свойство делает функции и замыкания полноправными типами данных, что является основой функционального программирования.

Примеры:

// 1. Присвоение функции переменной
let sayHello = { print("Hello!") }
sayHello() // Вывод: Hello!

// 2. Передача функции как аргумента
func execute(times: Int, task: () -> Void) {
    for _ in 0..<times { task() }
}
execute(times: 3, task: sayHello)
// Вывод:
// Hello!
// Hello!
// Hello!

// 3. Возврат функции из функции
func multiplier(for factor: Int) -> (Int) -> Int {
    return { number in
        return number * factor
    }
}
let double = multiplier(for: 2)
print(double(7)) // Вывод: 14

Практическое значение: Это позволяет создавать гибкие абстракции, такие как обработчики завершения (completion handlers), функции высшего порядка (map, filter, reduce) и конфигурируемое поведение.