定义
-
swift的闭包类似OC中的block
-
闭包是
引用类型 -
语法
{(参数列表) -> 返回值 in
闭包代码
}
- 定义一个闭包
//完整写法
let closure:(Int, Int) -> Int = {
(a: Int, b: Int) -> Int in
return a * b
}
//简写1: 闭包类型自动推导
let closure1 = {
(a: Int, b: Int) -> Int in
return a * b
}
//简写2: 参数类型,返回类型,return 都可省略
let closure2 = {
(a, b) in
a * b
}
//简写3: 省略参数,省略in,$0,$1代替
let closure3 = {
$0 * $1
}
//简写4: 只写一个*
let closure4 = {
*
}
- 闭包作为函数参数
func cloFunc(_ a: Int, _ b: Int, closure: (Int, Int) -> Int) -> Int {
return operation(a, b)
}
// 传入闭包
cloFunc(4, 2, closure: closure1)
cloFunc(4, 3, closure: *)