var sum10 = 0
if sum10 < 10 {
defer {
print("sum10: \(sum10)")
}
for i in 1...10 {
sum10 += i
}
}
// Prints "sum10: 55"
| В отличие от конструкций if и while, которые позволяют вам контролировать, будет ли выполняться часть вашего кода или сколько раз она будет выполняться, блок defer определяет фрагмент кода, который будет выполнен позже, когда ваша программа достигнет конца текущей области действия. В приведенном примере код внутри блока defer выполняется перед выходом из тела оператора if. Сначала запускается код оператора if, который считает сумму чисел от 1 до 10. Затем, перед выходом из области действия оператора if, запускается отложенный код, который печатает сумму. |