函数的设计思路是将有一定功能的代码块包装在一起,通过函数名实现复用。闭包和函数有着类似的作用,然而闭包的设计大多数情况下并不是为了代码的复用,而是传递功能代码块和处理回调结构。
如下代码所示,使用了冒泡排序算法来进行排序操作。
func mySort(array:inout Array<Any>,sortClosure:(Int,Int)->Bool)->Array<Any>
{
for indexI in array.indices {
if indexI == array.count - 1{
break
}
for indexJ in 0...(array.count - 1 - indexI - 1) {
if sortClosure(indexJ,indexJ + 1){
}
else{
swap(&array[indexJ], &array[indexJ + 1])
}
}
}
return array
}
var array:Array<Any> = [1,2,3,4,5,6,7,8,9]
let finalArr = mySort(array: &array,sortClosure: { (index:Int, nextIndex:Int) -> Bool in
return (array[index] as! Int) > (array[nextIndex] as! Int)
})
print(finalArr)