Swift 中的闭包代码详解

闭包是自包含的代码块,可以在代码中传递和使用。以下是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代码中使用闭包。