第5章 函数与闭包技术

所谓科学,包括逻辑和数学在内,都是有关时代的函数,所有科学连同它的理想和成就统统都是如此。

—— 穆尔

任何复杂的系统都是由许多简单的系统组合演化而来的,在编程中更是如此,任何复杂的功能都是由一些简单的功能组合演化而来的。函数是高级语言共有的代码特性,在数学中,函数是一种特定的算法映射,自变量的改变将引起因变量的改变。在编程中,函数的实质是完成特定功能的代码块,只是此代码块有一个名称,开发者可以通过函数名来调用函数完成特定的需求和功能。

Siwft语言中提供了十分灵活的方式来创建和调用函数。实际上在Swift语言中,每个函数都有特定的类型,函数的类型取决于参数和返回值。另外,在Swift语言中函数可以进行嵌套。

闭包的功能与函数类似,其也是有一定功能的代码块,在Objective-C语言中,与之相似的语法结构被称为block结构。闭包与函数有着密不可分的关系:函数是有名称的功能代码块,闭包在大多数情况下是没有名称的功能代码块,在语法结构上,闭包与函数也有着很大的差异。由于对闭包语法的支持,Swift语言更加强大而灵活。本章将向读者介绍在Swift语言中闭包结构的应用与简化技巧。

通过本章,你将学习到:

● 函数的创建与调用。

● 函数的类型与嵌套。

● 函数的inout参数。

● 编写变参数函数。

● 了解闭包的应用场景及设计思路。

● 对闭包结构进行简化。

● 特定条件下使用后置闭包。

● 逃逸与非逃逸闭包的应用。

● 自动闭包的应用。