簡介
defer就是 return/block 之前執行,無論函數是從哪個分支 return 的,或是單一個for每個index 結束前都會執行一次
任意 scope 都可以有 defer
只要有{ }就可以塞
呼叫
override func viewDidLoad() {
super.viewDidLoad()
deferTest()
}
for+defer
每個index結束時都會打印defer
才會換下一個index
func deferTest(){
for i in 0...10 {
defer {
print("結束")
}
print("執行\(i)")
}
}
普通func
結束時也會執行defer
func deferTest(){
defer {
print("結束")
}
print("執行")
}
defer執行順序
普通執行事由上到下
defer會從最下面的執行到最上面的
如果有多個defer的話
func deferTest(){
print("1")
defer {
print("6")
}
print("2")
defer {
print("5")
}
print("3")
defer {
print("4")
}
}