Capture of variables in closures in Swift
func makeWallet(var sum: Int) -> (pay: Int) -> Int {
return { pay in
sum -= pay
return sum
}
}
let payFromWallet1 = makeWallet(1000)
let payFromWallet2 = makeWallet(500)
var balance = payFromWallet1(pay: 50)
//balance is 950
balance = payFromWallet2(pay: 70)
//balance is 430
balance = payFromWallet1(pay: 150)
//balance is 800
- Log in to post comments