Dan*_*kin 3 closures function swift
在Swift中,据我所知,闭包保留了他们的环境,而普通的功能却没有.
考虑f(返回一个函数)和h(返回一个闭包).无论f()()和h()()回报3.为什么不f()()导致运行时错误?
func f() -> () -> Int {
let a = 3
func g() -> Int {
return a
}
return g
}
func h() -> () -> Int {
let a = 3
return { () in a }
}
Run Code Online (Sandbox Code Playgroud)