ios swift defer
·
defer {
}
defer后面打括号中的内容,是函数中最好执行的代码,即在return或throw之后执行的代码,举例:
return
var fridgeIsOpen = false
let fridgeContent = ["milk", "eggs", "leftovers"]
func fridgeContains(_ food: String) -> Bool {
fridgeIsOpen = true
defer {
print("defer")
fridgeIsOpen = false
}
let result = fridgeContent.contains(food)
print("返回")
fridgeIsOpen = true
return fridgeIsOpen
}
print(fridgeContains("banana"))
print(fridgeIsOpen)
打印结果:
返回
defer
true
false
throw
func send(job: Int, toPrinter printerName: String) throws -> String {
defer {
print("defer")
}
if printerName == "Never Has Toner" {
print("抛出异常")
throw PrinterError.noToner
}
print("返回")
return "Job sent"
}
do {
let printerResponse = try send(job: 1040, toPrinter: "Never Has Toner")
//抛出错误后在do中后面的代码不会执行
print("printerResponse")
print(printerResponse)
} catch {
print("error")
print(error)
}
打印结果:
抛出异常
defer
error
noToner
更多推荐


所有评论(0)