记录下学习swift的过程
正常闭包格式
{(参数列表) -> 返回值 in
}
如例
var sort = {(i1:Int,i2:Int)->Bool in return i1 > i2}
简化
按照案例,简化成这样
var sort = {i1,i2 in return i1 > i2}
会报错
/Users/admin/xcode/HelloYoungCoder/HelloYoungCoder/AppDelegate.swift:236:40: Ambiguous use of operator '>'
可能是因为swift版本的原因吧
疑惑的到解答 ,之前有问题的地方是用的方式不对
1,简化掉参数类型,swift支持类型推导,所以可以简化掉闭包函数参数的类型
var sortB:(Int,Int)->Bool = {i1,i2 in return i1 > i2}
2,简化掉return,因为函数主题只有一行,所以可以省略掉return
var sortC:(Int,Int)->Bool = {i1,i2 in i1 > i2}
3,简化参数名称,swift为闭包函数提供了名称缩写功能,所简化掉参数名称
var sortD:(Int,Int)->Bool = {$0 > $1}
4,利用运算符函数简化,
var sortG:(Int,Int)->Bool = (>)