SwiftPamphletApp icon indicating copy to clipboard operation
SwiftPamphletApp copied to clipboard

闭包

Open ming1016 opened this issue 4 years ago • 2 comments

闭包也可以叫做 lambda,是匿名函数,对应 OC 的 block。

let a1 = [1,3,2].sorted(by: { (l: Int, r: Int) -> Bool in
    return l < r
})
// 如果闭包是唯一的参数并在表达式最后可以使用结尾闭包语法,写法简化为
let a2 = [1,3,2].sorted { (l: Int, r: Int) -> Bool in
	return l < r
}
// 已知类型可以省略
let a3 = [1,3,2].sorted { l, r in
	return l < r
}
// 通过位置来使用闭包的参数,最后简化如下:
let a4 = [1,3,2].sorted { $0 < $1 }

函数也是闭包的一种,函数的参数也可以是闭包。@escaping 表示逃逸闭包,逃逸闭包是可以在函数返回之后继续调用的。@autoclosure 表示自动闭包,可以用来省略花括号。

ming1016 avatar Nov 16 '21 05:11 ming1016

@escaping 表示套以闭包 好像打错了,逃逸闭包

greezi avatar Dec 13 '21 02:12 greezi

@escaping 表示套以闭包 好像打错了,逃逸闭包

已改

ming1016 avatar Dec 13 '21 02:12 ming1016