一、闭包的定义
闭包实际上就是函数嵌套。
func Outer()
{
func Inner()
{
}
}
main(): Int64 {
return 0
}
上述代码就是闭包的定义。
二、闭包的作用
闭包可以在多个函数调用之间记住变量的值,带有记忆功能,每次调用函数都能记住上次的值,以此来对数据进行封装。
使用闭包可以避免使用过多的全局变量,使代码更加模块化,结构更清晰。
总的来说,闭包让函数记住了它的外部环境变量,在实际开发中可以用于状态保持,数据封装,功能扩展。
var a1 = 10
func Outer()
{
func Inner()
{
a1++
println(a1)
}
Inner
}
main(): Int64 {
var fn = Outer()
fn()
fn()
fn()
return 0
}
结果为:
由上述实例可知,闭包函数保持了a1的状态,调用了三次函数,a1每次增加1,最终达到13。
三、变量为引用类型
如果捕获的变量是引用类型,可以修改其可变实例成员变量的值。
class A{
var a1 : Int64 = 10
}
func Outer()
{
let a = A()
func Inner()
{
a.a1++
println(a.a1)
}
Inner
}
main(): Int64 {
var fn = Outer()
fn()
fn()
fn()
return 0
}
结果为: