> On Oct 5, 2016, at 9:06 PM, Cao Jiannan via swift-evolution 
> <[email protected]> wrote:
> 
> for example:
> 
> var a = 1
> 
> let block = { [inout a] in
>       a += 1
> }
> 
> block()
> block()
> 
> print(a) // 3

This is already how captures work by default in closures and nested functions 
in Swift:

var a = 1

let block = { a += 1 }

block()
block()

print(a) // prints 3


If you want to capture something immutably you can put it in the capture list:

var a = 1
let block = { [a] in a += 1 } // error: left side of mutating operator isn't 
mutable: 'a' is a 'let' constant

Mark

> 
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to