> For the complete documentation index, see [llms.txt](https://ryukiedev.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ryukiedev.gitbook.io/wiki/swift/tao-yi-bi-bao-he-fei-tao-yi-bi-bao.md).

# 03.逃逸闭包和非逃逸闭包

## 逃逸闭包\_@escaping

* 一个接受一个闭包作为参数的函数,如果参数需要在函数结束之后才被调用
* 也就是闭包脱离了函数的作用域

## 非逃逸闭包\_@noescape

* 一个接受一个闭包作为参数的函数,闭包会在函数结束前被调用
* 非逃逸闭包

## 内存管理

* 非逃逸闭包不会存在循环引用,因为在函数作用域内就释放了
* 开发中使用非逃逸闭包有利于内存优化

## 自动逃逸

* 注意
  * 当闭包被当做参数,包裹在其他类型中(元祖/枚举/case/Optional可选型)中会自动逃逸
