数组 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 ){
};
调用
网友评论