闭包定义
let 闭包名: 闭包类型(可选省略) = {(参数:参数类型,....)->返回值类型 in xxxx(执行的代码)}
1. swift里面的闭包和oc里面的block很类似, block就是一个代码块'{}'
2. 闭包可以作为函数的参数和返回值使用
3. 注意点,在需要的使用执行闭包
4. 关键点: 在闭包里面使用self需要注意循环引用
- 定义一个有参数有返回值的闭包
func demoBB2() {
// 定义一个有参数有返回值的闭包
let closure = { (num1: Int, num2: Int) -> Int in
return num1 + num2
}
// 执行闭包
let result = closure(10, 20)
print(result)
// 提示: 可以先定义有参数有返回值函数,然后把函数的参数和返回值复制到代码块里面中间使用in隔开即可
let closure1 = { (num1: Int, num2: Int) -> Int in
return num2 + num1
}
let result1 = closure1(10, 20)
print(result1)
}
定义一个有参数有返回值的函数
func demoBB1() {
// 定义一个有参数有返回值的函数
func sum(num1: Int, num2: Int) -> Int {
return num1 + num2
}
// 执行函数
let result = sum(num1: 10, num2: 20)
print(result)
}
- 定义无参数无返回值的闭包
func demoAA2() {
// 定义一个闭包
// let closure: ()->() = {
// print("无参数无返回值的闭包")
// }
let closure = {
print("无参数无返回值的闭包")
}
// 假如需要在这个地方执行闭包
closure()
}
网友评论