swift闭包 以及与oc的block转换

数组  sorted函数  需要(x,y)->bool  类型,返回true,则说明x,y顺序正确,否则替换x,y

闭包 语法

{ (参数) - > (返回类型)  in

具体描述

}

闭包的书写形式 是可以  省略的,具体的省略形势可以查看文档,这里不做具体的描述

尾随闭包

声明:

funcsomeFunctionThatTakesAClosure(closure: () ->Void) {

// function body goes here

}

函数调用的方法

someFunctionThatTakesAClosure(closure: {

// closure's body goes here

})

尾随闭包的调用方法

someFunctionThatTakesAClosure() {

// trailing closure's body goes here

}

需要注意的是  尾随闭包的函数声明最后一个参数必须是 以函数  为参数,否则不能使用尾随的形式

若不是最后一个参数,就只能使用函数调用的形式了,上边已经写明

闭包 和OC的block  的概念类似,所以可以以block的形式理解闭包的概念

OC  的block  与 swift 的closure  互换例子

oc:

@property (nonatomic,copy) void(^testBlock)(nsstring * name)

cell.testBlock = ^(nesting * name){

block的回调方法

};

声明

+(void)blockWithtest:(testBlock)block {

};

调用

blockWithtest:^(id category) {

nslog(@“%@“,category);

}

swift:

var testClosure:{ (name:String) -> () } ?

cell.testClosure = {

(name) -> Void in

闭包的回调方法

}

声明

fun blockWithtest( (id category)-> Void ){

};

调用

blockWithtest{

( category ) -> Void in

调用方法

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天的博客算是比较基础的,还是那句话,基础这东西在什么时候都是最重要的。说到函数,只要是写过程序就肯定知道函数是怎...
    攞你命3OOO阅读 608评论 0 1
  • 以下翻译自Apple官方文档,结合自己的理解记录下来。翻译基于 swift 3.0.1 原文地址 Closure...
    艺术农阅读 1,631评论 0 3
  • Swift-闭包 Swift闭包的含义 闭包是自包含的功能代码块,可以用作函数的参数或者返回值 闭包可以捕获上下文...
    stackJolin阅读 1,263评论 0 2
  • 为天地立心,为生民立命,为往圣继绝学,为万事开太平。
    MarsMark阅读 711评论 0 1
  • 昨天中午,猫叔来了我们小灶群!群里开始沸腾起来。 猫叔一来群里就发红包,还发一个临时话题话题, 【今日临时话题】 ...
    令芳老师阅读 361评论 4 9