1. 闭包 - 类似 OC 中的 block
1.1 block:
- 是 c 语言的
- 是一组预先准备好的代码,在需要的时候执行
- 可以当作参数传递
- 如果出现 self 需要注意循环引用
1.2 在 Swift 中,函数本身就可以当作参数传递
2. 定义函数常量
func demo(){
//供参考
//定义函数常量 (Int, Int) -> Int
let sumFunc = sum
let r = sumFunc(10, 20)
print(r)
}
func sum(x: Int, y: Int) -> Int{
return x + y
}
3. 定义闭包
3.1 闭包的所有代码[参数,返回值 执行代码]都放在 {} 中
3.2 in 是用来区分函数定义和执行代码
3.3 格式 (新版本去掉了外部参数)
{(参数列表) -> 返回值 in // 代码执行 }
func demo1(){
//定义闭包
/**
1.闭包的所有代码[参数,返回值 执行代码]都放在 {} 中
2.in 是用来区分函数定义和执行代码
格式 (新版本去掉了外部参数)
{(参数列表) -> 返回值 in // 代码执行 }
*/
let sumFunc = {
(x: Int, y: Int) -> Int
in
return x + y
}
print(sumFunc(20, 10))
//‘简单’的闭包,如果没有参数和返回值 参数/返回值/in 都可以省略
// () -> ()
let demo = {
print("hello")
}
demo()
}