十三、Swift3.0之闭包的定义和GCD实际使用
2017-02-24 本文已影响117人
ZhengYaWei
闭包定义的三种形式(无参数无返回值、有参数无返回值、有参数有返回值)
//1、最简单的闭包
//() -> () 没有参数,没有返回值
//如果没有参数,没有返回值,可以省略,包括in也可以省略
let b1 = {
print("hello")
}
//执行闭包
b1()
//2、带参数的闭包
//注意:闭包中,参数 返回值 实现代码都写在{ }中
//需要使用关键字 in 来分割定义和实现
//格式: {形参列表 -> 返回值类型 in 实现代码}
//这个形式(x: Int) -> () 函数非常类似
let b2 = {(x: Int) -> () in
print(x)
}
//闭包调用
b2(100)
//3、带参数带返回值的闭包
let b3 = {(x: Int) -> Int in
return x + 250
}
//闭包调用
print(b3(10))
Swift3.0中GCD的写法:
DispatchQueue.global().async {
print("耗时操作\(Thread.current)")
//主队列
DispatchQueue.main.async {
print("主线程更新UI\(Thread.current)")
}
}