Swift面试题更新 2026-08-05

请解释Swift中闭包的基本概念,并阐述闭包与函数之间的关联区别。

技术原理Swift

考察说明

考查对Swift闭包本质及与函数关系的理解。

回答思路

  1. 【回答框架 1】闭包是自包含的功能代码块,可以捕获并存储其所在上下文中的常量和变量。Swift中的闭包有三种形式:全局函数、嵌套函数和闭包表达式。
  2. 【回答框架 2】闭包与函数的关系:函数是闭包的一种特殊情况,函数有名字,而闭包表达式可以匿名。闭包可以作为参数传递、作为返回值,并且可以捕获上下文中的值。
  3. 【回答框架 3】闭包捕获值的机制:闭包可以捕获变量和常量,即使定义它们的原作用域已经不存在,闭包仍然可以在其函数体内引用和修改它们。
  4. 【回答框架 4】闭包的简化语法:尾随闭包、省略参数和返回值类型、隐式返回单个表达式等,使代码更简洁。
  5. 【关键点 1】闭包是自包含的函数代码块,可捕获上下文变量。
  6. 【关键点 2】全局函数和嵌套函数是命名闭包。
  7. 【关键点 3】闭包表达式提供简洁的匿名函数语法。
  8. 【关键点 4】闭包是引用类型,捕获值的方式影响内存管理。
  9. 【易错点 1】误以为闭包只能匿名,忘记命名函数也是闭包。
  10. 【易错点 2】忽略闭包捕获列表可能导致的循环引用,需要使用weak或unowned。