📜  Swift闭包(1)

📅  最后修改于: 2023-12-03 15:05:26.643000             🧑  作者: Mango

Swift闭包

在Swift语言中,闭包是一种可以作为函数参数传递、也可以作为函数返回值的特殊函数。它具有以下几种表现形式:

  1. 具有完整参数列表和返回值类型的闭包表达式
let add: (Int, Int) -> Int = { (a, b) in
    return a + b
}

这是一个类型标注为(Int, Int) -> Int的闭包,这里的{}就是闭包表达式。其参数列表包含两个参数ab,类型均为Int,并在函数体中返回它们的和。

  1. 简化参数列表和返回值类型的闭包表达式
let multiply: (Int, Int) -> Int = {
    $0 * $1
}

这个例子定义了一个类似的闭包,但$0和$1代替了参数a和b,并直接返回了它们的乘积。这对于简单的操作非常方便。

  1. 使用trailing closure的闭包调用
let numbers = [1, 2, 3, 4, 5]
let sum = numbers.reduce(0) { $0 + $1 }

这里的reduce是一个数组的方法,它可以将数组中的元素以某种方式组合起来。第一个参数是初始值0,第二个参数是一个闭包,将累加器值和数组中的下一个元素组合在一起。这时,可以选择使用trailing closure,将闭包写在括号的外面,以提高代码的可读性。

以上就是Swift中闭包的基本用法,它们在函数式编程中非常常见,可以让我们写出紧凑、高效的代码。