swift 之闭包的学习笔记

前端之家收集整理的这篇文章主要介绍了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

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

原文链接:https://www.f2er.com/swift/325636.html

猜你在找的Swift相关文章