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

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

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

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

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_关东升。
关注智捷课堂微信公共平台,了解最新技术文章、图书、教程信息
 
更多精品iOS、Cocos、移动设计课程请关注智捷课堂官方网站:http://www.zhijieketang.com
智捷课堂论坛网站:http://51work6.com/forum.php

 

时间: 2024-07-28 19:28:45

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

关东升的《从零开始学Swift》即将出版

大家好:   苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版<从零开始学Swift><从零开始学Swift>将在<Swift开发指南>第1版的基础上添加Swift2.0的内容,同时摒弃第1版的一些不合理的内容,使得本书更加适合Swift开发者.我将连续发一些<从零开始学Swift>的学习笔记,有兴趣者,可以看一下. 书中源代码下载地址:http://51work6.com/swiftbook1.ph

关东升的《从零开始学Swift》3月9日已经上架

    大家一直期盼的<从零开始学Swift>于3月9日已经上架,它是关东升老师历时8个月的呕心沥血所编著,全书600多页,此本书基于Swift 2.x,通过大量案例全面介绍苹果平台的应用开发.全书共分5 部分,包括Swift语法篇.Cocoa Touch框架编程篇.混合编程篇.进阶篇和项目实战篇,囊括了开发工具介绍.语言基础知识,直至应用在App Store上线的所有内容.此外,本书前20 章专门配有同步练习,以帮助读者掌握所学知识.本书更加适合Swift开发者.大家可以看一下.http:/

Swift学习笔记(一)搭配环境以及代码运行成功

原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹果以后大力推广的语言哦!   2.Swift给你带来什么机会? 当初你觉得objc太难,学ios学到一半放弃拉,或者进入it行业大家都搞android,你也搞android去了.现在你终于有机会和搞ios的站在一个语言的起跑线上,兄弟!swift传说很容易学哦,搞android的你想不想增加一下本领

Swift学习笔记(3)iOS 9 中的网络请求

Swift学习笔记(3)iOS 9 中的网络请求 目录 Swift学习笔记3iOS 9 中的网络请求 目录 编码方法 请求方法 其他修改 完整代码 运行结果 编码方法 在iOS9中,以前常用的stringByAddingPercentEscapesUsingEncoding方法被废除了,取而代之的是stringByAddingPercentEncodingWithAllowedCharacters方法. 用法示例: var strURL=String(format:"http://blog.cs

Swift学习笔记(2)网络数据交换格式(XML,JSON)解析 [iOS实战 入门与提高卷]

Swift学习笔记(2)网络数据交换格式(XML,JSON)解析 参考书籍及资源:iOS实战 入门与提高卷 关东升 参考书籍地址 用NSXML来解析XML文档 用TBXML来解析XML文档 用NSJSONSerialization来解析JSON文档 目录 Swift学习笔记2网络数据交换格式XMLJSON解析 目录 用NSXML来解析XML文档 示例文档Notesxml 创建XMLParser类 调用与运行结果 用TBXML来解析XML文档 准备工作 创建XMLParser类 调用与运行结果 用

Swift学习笔记(1)过渡动画(CATransition和UIViewAnimation)的用法

Swift学习笔记(1)过渡动画(CATransition和UIViewAnimation)的用法 CATransition和UIViewAnimation是场景切换时常用的两种过渡动画 目录 Swift学习笔记1过渡动画CATransition和UIViewAnimation的用法 目录 CATransition CATransition的type属性 CATransition的subtype属性 代码示例 UIViewAnimationTransition UIViewAnimationTr

Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片

Swift学习笔记(4)使用UIImagePickerController实现从设备图片库和照相机获取图片 设备图片库和照相机是图像的两个重要来源,使用UIKit中提供的图像选择器UIImagePickerController可以轻易地实现从设备图片库和照相机获取图片. 目录 Swift学习笔记4使用UIImagePickerController实现从设备图片库和照相机获取图片 目录 声明协议 创建UIImagePickerController UIImagePickerControllerDe

【swift学习笔记】二.页面转跳数据回传

上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字,回传到父页面. 我是使用protocol去实现的回传.那让我们来创建一个protocol import Foundation protocol ValueBackDelegate { func ValueBack(value: String) } protocol可以理解为interface,ValueBa

《从零开始学Swift》学习笔记(Day 37)——默认构造函数

Swift 2.0学习笔记(Day 37)--默认构造函数原创文章,欢迎转载.转载请注明:关东升的博客 结构体和类的实例在构造过程中会调用一种特殊的init方法,称为构造函数.构造函数没有返回值,可以重载.在多个构造函数重载的情况下,运行环境可以根据它的外部参数名或参数列表调用合适的构造函数.默认构造函数结构体和类在构造过程中会调用一个构造函数,即便是没有编写任何构造函数,编译器也会提供一个默认的构造函数.下面看示例代码: class Rectangle { var width: Double