Swift闭包 gekaand

2016-05-18  本文已影响14人  AAup

闭包基础格式 :
{
(参数:类型) ->返回类型 in
执行方法
return 返回类型
}
说明:
1;闭包主要指向函数类型
2:闭包的参数必须和函数类型的参数和返回值一致

//这是我们的model
class students  {
var studentsName = String()
var studentsID = Int()
}

//使用
var student : [students] = []
student.sort({ $0.fileID > $1.fileID })//匿名函数实例

//下面是闭包的简化使用
// 一般的代码形式
student.sort({ (student1: students, student2: students) -> Bool in return student1.studentsID > student2.studentsID })

// 省略(->)的形式
student.sort({ student1, student2 in return student1.studentsID > student2.studentsID })

// 去掉return的简单闭包形式
student.sort({ student1, student2 in student1.studentsID > student2.studentsID })

// 隐藏参数的形式
student.sort({ $0.studentsID > $1.studentsID })

捕获

Snip20160518_3.png

func addHandler(set:Int) -> ()->Int {
var sum = 0
return{
sum+=set
return sum
}
}
//同一个闭包里的数值是累积的

let addByTen = addHandler(10)

print(addByTen())//10
print(addByTen())//20
print(addByTen())//30

//addBySix 与addByTen 属于不同的闭包对象, 所以是从零开始
let addBySix = addHandler(6)

print(addBySix())//06
print(addBySix())//12
print(addBySix())//18
上一篇 下一篇

猜你喜欢

热点阅读