閉包可以捕獲和存儲其所在上下文中任意常量和變量的引用。被稱為包裹常量和變量。 Swift 會為你管理在捕獲過程中涉及到的所有內存操作。
閉包可以在定義的上下文中捕獲常量或者變量。即使定義這些常量或者變量的作用域已經不存在,閉包仍然可以在閉包函數體內引用和修改這些值。
swift中,可以捕獲值的閉包的最簡單形式是嵌套函數。也就是定義在其他函數體內部的函數嵌套函數可以捕獲其外部函數所有的參數以及定義的變量或者常量。
嵌套函數
上邊incermenter會捕獲amount參數和runningTotal變量兩個數。每次調用incermenter,結果都會在runningTotal的基礎上增加amount的值。