📅  最后修改于: 2023-12-03 15:05:26.643000             🧑  作者: Mango
在Swift语言中,闭包是一种可以作为函数参数传递、也可以作为函数返回值的特殊函数。它具有以下几种表现形式:
let add: (Int, Int) -> Int = { (a, b) in
return a + b
}
这是一个类型标注为(Int, Int) -> Int
的闭包,这里的{}
就是闭包表达式。其参数列表包含两个参数a
和b
,类型均为Int
,并在函数体中返回它们的和。
let multiply: (Int, Int) -> Int = {
$0 * $1
}
这个例子定义了一个类似的闭包,但$0和$1代替了参数a和b,并直接返回了它们的乘积。这对于简单的操作非常方便。
trailing closure
的闭包调用let numbers = [1, 2, 3, 4, 5]
let sum = numbers.reduce(0) { $0 + $1 }
这里的reduce
是一个数组的方法,它可以将数组中的元素以某种方式组合起来。第一个参数是初始值0
,第二个参数是一个闭包,将累加器值和数组中的下一个元素组合在一起。这时,可以选择使用trailing closure
,将闭包写在括号的外面,以提高代码的可读性。
以上就是Swift中闭包的基本用法,它们在函数式编程中非常常见,可以让我们写出紧凑、高效的代码。