资讯专栏INFORMATION COLUMN

Swift闭包2-尾闭包

Lin_YT / 1207人阅读

摘要:原文链接引言上一片文章讲解了中闭包的基本概念,以及基本的语法,这篇文章主要讲解一下中尾闭包。用尾闭包的方式调用的的函数也可以采用尾闭包的方式来调用,比如上一篇文章对字符串数组排序的方法。

原文链接:http://1199game.com/2016/09/S...

引言

  上一片文章讲解了swift中闭包的基本概念,以及基本的语法,这篇文章主要讲解一下swift中尾闭包。

什么是尾闭包

  假设有这样一个函数:这个函数的最后一个参数是一个闭包,并且,这个闭包表达式很长。如果按照正常的方式来调用这个函数的话,需要在参数里指明这个函数的参数名,然后后面跟着一个闭包表达式。比如下面这种函数:

func someFunctionThatTakesAClosure(closure: () -> Void) {
    // function body goes here
}

正常的使用方式如下

// 正常的调用方式:

someFunctionThatTakesAClosure(closure: {
    // closure"s body goes here
})

可以发现someFunctionThatTakesAClosure(closure:)最一个参数是一个闭包,那么我们可以用另外一种方式去调用这个函数。

// 用尾闭包的方式调用:

someFunctionThatTakesAClosure() {
    // trailing closure"s body goes here
}

Swift的Array的sort函数也可以采用尾闭包的方式来调用,比如上一篇文章对字符串数组排序的方法。

reversedNames = names.sorted() { $0 > $1 }

  如果一个函数只有一个参数,并且这个参数是一个闭包,那么在使用这个函数的时候可以省略括号,比如上面的sorted函数可以写成这样:

reversedNames = names.sorted { $0 > $1 }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/16472.html

相关文章

  • Swift闭包1-基本概念

    摘要:关键字前面的是闭包的申明部分,类似函数的申明,包括参数的申明和返回值的申明后面的部分是闭包的实现。所以,参数类型和返回值类型都可以根据上下文推断出来,那么在闭包里面就可以直接省略。同理,返回值也可以直接省略。 原文链接:http://1199game.com/2016/09/S... 引言   这篇文章开始主要讲解Swift中闭包(Closures)的一些知识点。本文是这个系列的第一篇...

    Nekron 评论0 收藏0
  • 优雅地书写 UIView 动画

    摘要:原文作者译者闭包成对出现时会恶心到你代码里的闭包是很好用的工具它们是一等公民如果他们在的尾部时还可以变成尾随闭包并且现在里还默认为以避免循环引用但每当我们不得不使用那些包含了多个闭包参数的的时候就会让这门优雅的语言变得很丑陋是的我说的就是你 原文: Swift: UIView Animation Syntax Sugar作者: Andyy Hope译者: kemchenj 闭包成对出现...

    omgdog 评论0 收藏0
  • Swift闭包3-逃逸闭包

    摘要:原文链接引言本篇将介绍中一种特殊的闭包逃逸闭包。逃逸闭包当一个传入函数的闭包在函数执行结束之后才会被调用,这样的闭包就叫做逃逸闭包。一个闭包是逃逸必要的条件是这个闭包需要存储在函数外部。 原文链接:http://1199game.com/2016/10/S... 引言   本篇将介绍swift中一种特殊的闭包-逃逸闭包(escape closure)。 逃逸闭包   当一个传入函数的闭...

    X_AirDu 评论0 收藏0
  • Swift

    摘要:如果服务器是签署的证书,那么一路绿灯,如果是自签名证书,就需要做两个额外的工作在内加入内置的下拉刷新对,下拉刷新新的数据是很方便的。 Swift iOS : 字体图标 厌倦了使用位图在xcode的Assets.xcassets内,因为麻烦,包括如下的麻烦: 找图 图需要分尺寸 需要操作员类似工作去管理 然后,现在有了字体图标,就方便多了: 比较成熟的几套库,用名字就可以查 矢量图,尺寸...

    hqman 评论0 收藏0
  • Swift 中的 7 个陷阱以及如何避免

    摘要:原文链接前言伴随着语言的快速发展,我们对于苹果设备编程的认识也发生着变化。这其中的一些陷阱在官方的书里面,但是还有一些书中并没有提及。例如苹果提供了实现的用户体验,系统工具等功能很多框架。 作者: David Ungar,时间:2016/1/27 翻译:BigNerdCoding, 如有错误欢迎指出。原文链接 前言 伴随着Swift语言的快速发展,我们对于苹果设备编程的认识也发生着变...

    sourcenode 评论0 收藏0

发表评论

0条评论

Lin_YT

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<