SwiftUI 内功教程之Closures 09 闭包捕捉价值Capturing Values及经典用法

SwiftUI 内功教程之Closures 09 闭包捕捉价值Capturing Values及经典用法

什么是闭包

闭包是独立的功能块,可以在代码中传递和使用。Swift中的闭包类似于C和Objective-C中的块以及其他编程语言中的lambda。闭包可以从定义它们的上下文中捕获和存储对任何常量和变量的引用。这称为关闭这些常量和变量。Swift为您处理捕获的所有内存管理.


闭包可以从定义它的周围环境中捕获常量和变量

闭包可以从定义它的周围环境中捕获常量和变量。然后,闭包可以从其主体内部引用和修改这些常量和变量的值,即使定义常量和变量的原始范围不再存在。

在Swift中,最简单的可以捕获值的闭包形式是嵌套函数,它写在另一个函数的主体内。嵌套函数可以捕获其外部函数的任何自变量,还可以捕获在外部函数内定义的任何常量和变量。

这是一个名为的函数的示例makeIncrementer,其中包含一个名为的嵌套函数incrementer。嵌套incrementer()函数从其周围的上下文中捕获两个值runningTotal和amount。在捕捉到这些值后,incrementer被返回makeIncrementer的闭包的增量runningTotal由amount每次它被调用。

func makeIncrementer(forIncrement amount:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识大胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值