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)