print("1. Capture a var of a Value Type:")
var number = 10
let closure: () -> Void = {
number += 5
}
closure()
print(number) // Output: 15
print("2. Capture a var of a Reference Type:")
class NumberHolder {
var number = 10
}
var holder = NumberHolder()
let closure2: () -> Void = {
holder.number += 5
}
closure2()
print(holder.number) // Output: 15
print("[weak holder] ")
var holder: NumberHolder? = NumberHolder()
let closure3: () -> Void = { [weak holder] in
holder?.number += 5
}
closure3()
print(holder?.number ?? 0) // Output: 15
import Foundation