《从零开始学Swift》学习笔记(Day 23)——尾随闭包

简介: <p><span style="font-family:宋体;font-size:14px;"></span><span style="font-family:宋体;font-size: 14pt; mso-ascii-font-family: Arial; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast;

原创文章,欢迎转载。转载请注明:关东升的博客 


闭包表达式可以作为函数的参数传递,如果闭包表达式很长,就会影响程序的可读性。尾随闭包是一个书写在函数括号之后的闭包表达式,函数支持将其作为最后一个参数调用。

下面我们来看一个示例代码:

func calculate(opr: String, funN:(Int, Int) -> Int) { 




//最后一个参数funN是(Int,Int)-> Int函数类型,funN可以接收闭包表达式




    switch (opr) {




    case "+" :




        print("10 + 5 = \(funN(10,5))")




    default:




        print("10 - 5 = \(funN(10,5))")




    }




} 




calculate("+", funN: {(a: Int, b: Int) -> Int in return a + b })  //调用




calculate("+"){(a: Int, b: Int) -> Int in return a + b } //调用,这种形式就是尾随闭包




calculate("+") { $0 + $1 }  //调用,这种形式就是尾随闭包

       需要注意的是,闭包必须是参数列表的最后一个参数,如果calculate函数采用如下形式定义:


func calculate(funN:(Int, Int) ->Int, opr:String) {


...


}


由于闭包表达式不是最后一个参数,那么调用calculate函数就不能使用尾随闭包写法的。


 


欢迎关注关东升新浪微博@tony_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
 http://www.zhijieketang.com/files/default/2015/09-28/110238ef41e1688449.png?6.4.1

更多精品iOSCocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php


 


目录
相关文章
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
739 2
|
存储 Swift iOS开发
Swift 闭包
10月更文挑战第28天
242 0
|
Swift UED
Swift 中使用闭包处理事件
【10月更文挑战第20天】使用闭包来处理事件在 Swift 编程中是一种非常常见和有效的方式。它提供了简洁、灵活和高效的解决方案,使我们能够更轻松地实现各种交互功能。通过深入理解闭包的原理和应用方法,我们可以更好地利用闭包来处理各种事件,提升应用的用户体验和开发效率。
330 58
|
存储 API Swift
【Swift开发专栏】Swift函数与闭包的实战应用
【4月更文挑战第30天】本文介绍了 Swift 中函数和闭包的实战应用。首先,函数的基本使用包括定义、参数与返回值、函数类型以及高级技巧如嵌套函数。接着,讨论了闭包的语法,包括无名函数、作为函数参数、简写形式和尾随闭包。最后,展示了函数和闭包在实战中的应用,如排序过滤集合和处理异步任务的回调。
334 0
|
存储 Swift
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
502 1
|
存储 Swift
Swift中,函数和闭包
Swift中,函数和闭包
226 1
|
Swift
swift 闭包简写实际参数名$0、$1等理解
swift 闭包简写实际参数名$0、$1等理解
463 0
【Swift4】(6) 闭包 | 闭包应用 | 闭包作为函数参数 | 捕获特性
【Swift4】(6) 闭包 | 闭包应用 | 闭包作为函数参数 | 捕获特性
272 0
|
存储 编译器 Swift
Swift5.0 - day4-闭包、属性、方法、下标
Swift5.0 - day4-闭包、属性、方法、下标
539 0
Swift5.0 - day4-闭包、属性、方法、下标
|
Swift
Swift5.1—闭包的循环强引用
Swift5.1—闭包的循环强引用
423 0
Swift5.1—闭包的循环强引用