В документации Swift Apple, говорит, что это:Быстрая разница между закрытием и функциями первого класса?
Затворы представляют собой автономные блоки функциональных возможностей, которые могут быть переданы вокруг и используется в вашем коде. Закрытия в Swift аналогичны блокам в C и Objective-C и для лямбда на других языках программирования.
который я думал, было определение First-class functions
И они также говорят, что это:
Затворы могут захватывать и хранить ссылки на любые константы и переменные из контекста, в котором они определены , Это называется , перекрывающим эти константы и переменные. Swift обрабатывает все управление памятью захвата .
Я думал, что это было определением замыканий, в то время как другая функция была предназначена для первоклассных функций, но Apple, похоже, собрала их и называет это закрытием.
Я что-то не понял? или Apple закрывает закрытие и закрывает функции первого класса?
Я написал этот пример кода и просто хочу знать, прав ли я в письменных комментариях?
// 'a' takes a first class function, which makes 'a' a higher order function
func a(ch:() -> Void){
print("Something")
ch() // 'ch' is a first class function
print("Ended")
}
func closureFunc(){
var num = 2
a({
// access to 'num' is possible by closures
num = num*2
print(num)
})
}
closureFunc()
Все выглядит хорошо. - затворы могут захватить параметры вне их, в том числе 'self.' (должен быть явным). Взгляните на http://stackoverflow.com/questions/29022985/how-to-comprehend-the-first-class-function-in-swift?rq=1 – sschale
Если вы чувствуете, что ваш вопрос удовлетворен, пожалуйста, примите его ответов – Alexander