swift 之闭包的学习笔记

闭包

概念

1、功能性子包含模块,可以再代码中被传递或者使用

2、类似OC中的block,或者c++中的lambdas表达式

3、函数是特殊的闭包表现形式:

a、全局函数是一个有名字但不会捕获任何值的闭包

b、嵌套函数是一个有名字并可以捕获器封闭函数域内值得闭包

c、闭包表达式是一个利用轻量级语法所写,可以捕获其上下文中变量或常量值的没有名字的闭包

一、表达式语法:

{(parameters)->returnType in statements}

例子:

参数类型推断:func sortFunc(a, b) -> Bool {return a > b}

参数名简写:arr6.sortInPlace{( 0< 1)}//参数名简写loop(arr6)

Trailing闭包:arr6.sortInPlace(<)//Trailing闭包

loop(arr6)

二、捕获(Capture):闭包可以在其定义的上下文中捕获常量或者变量,即使定义这些常量和变量的原作用域已经不存在,闭包依然可以在闭包函数体内引用和修改这些值

Swift最简单的闭包形式是嵌套函数,也就是定义在其他函数体内的函数。嵌套函数可以捕获其外部函数所有的参数以及定义的常量和变量

闭包的引用类型:无论您将函数/闭包赋值给一个常量还是变量,你实际上都是将常量/变量的值设置为对应函数/闭包的引用。

备注:

struct 值类型 copy

闭包 引用类型 传递的是地址 一份

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值