闭包是自包含的函数代码块,可以在代码中被传递和使用。Switf中的闭包与C和Objective中的代码块(block)以及其他一些编程语言中的匿名函数比较相似
闭包可以捕获和存储其所在上下文中任意常量和变量的引用。这就是所谓的闭合并包裹着这些常量和变量,俗称闭包
闭包的使用和block一样,用于保存一段代码,用作回调,用作执行耗时操作
闭包的格式: in关键字的目的是便于区分返回值和执行语句
{
(形参列表) -> 返回值类型
in
执行语句
}
完整写法
let say:(String)->Void = {
(name:String) -> Void in
print("\(name)")
}
say("hello")
没有返回值的写法
let say2:(String)->Void = {
(name:String) in
print("(name)")
}
say2(“world”)
没有参数没有返回值的写法
let say3: (Void) -> Void = {
print(“hello world”)
}
say3()