闭包是自包含的代码块,可以在代码中传递和使用。以下是Swift中闭包如何工作的快速概述:
闭包表达式语法
Swift中的闭包定义在大括号内:
{ (parameters) -> return type in
statements
}
For example:
let add = { (x: Int, y: Int) -> Int in
return x + y
}
print(add(1, 2)) // Prints 3
尾部闭包语法
当闭包是函数的最后一个参数时,可以将其写在括号后面:
func doMath(x: Int, y: Int, operation: (Int, Int) -> Int) {
let result = operation(x, y)
print(result)
}
doMath(x: 1, y: 2) { x, y in
return x + y
}
这提高了长闭包参数的可读性。
捕获值
闭包可以从周围的上下文中捕获常量和变量:
var z = 100
let add = { (x: Int, y: Int) -> Int in
return x + y + z
}
print(add(1, 2)) // Prints 103
这使得闭包在实践中非常强大。
关于闭包,还有很多东西需要学习,比如引用循环等。但这些基本知识足以让你开始在Swift代码中使用闭包。