前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Swift-闭包(一)

Swift-闭包(一)

原创
作者头像
Wilbur-L
修改于 2021-03-18 02:11:15
修改于 2021-03-18 02:11:15
4590
举报
文章被收录于专栏:iOS底层原理iOS底层原理

表达式

{ (param:Type) -> ReturnType in

//包体

}

var array = [1,2,3]

array.sort{(n1:Int,n2:Int) -> Bool in return n1<n2}

利用上下文推断参数和返回值类型

推断参数

array.sort(by:{(n1,n2)-> Bool in return n1 < n2})

推断返回

array.sort{(n1,n2) in n1 < n2}

参数名称简写

array.sort{ $0 < $1 }

推断。。。总之就断了

array.sort(by : < )

闭包引用类型

func coding(day: Int ,appName: () -> String){

print("\(dat),\(appName())App")

}

闭包作为参数

coding(40,appName:{() -> String in

"Weather"

)}

也可以把闭包表达式写出来

let appName = {() -> String in

"App"

}

尾随闭包

coding(day:30){ () -> String in

"c"

}

根据上面的简写 ,闭包里面的传参和返回和in都可以省略

根据上下文推断类型

func coding(day: Int,res:(Int,String) -> String){

print("\(day),\(res(1,"Alamofire"))")

}

方法名可以重复,只要参数or返回不一样,swift就可以重载方法

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档