Re: [swift-evolution] [Pitch] inout with capture variable

2016-10-05 Thread Cao Jiannan via swift-evolution
I just want to demo how the inout capture works. the demo code just want to capture value avoiding capture self. > > On Oct 5, 2016, at 10:07 PM, Cao > > Jiannanmailto:frog...@163.com)>wrote: > > so if developer want to capture an variable inference, must declare a new > > variable. > I don’t f

Re: [swift-evolution] [Pitch] inout with capture variable

2016-10-05 Thread Mark Lacey via swift-evolution
> On Oct 5, 2016, at 10:07 PM, Cao Jiannan wrote: > > so if developer want to capture an variable inference, must declare a new > variable. I don’t follow what you mean here. > > class A { > var value = 1 > > func test() -> () -> Int { > var capturedValue = self.value >

Re: [swift-evolution] [Pitch] inout with capture variable

2016-10-05 Thread Cao Jiannan via swift-evolution
so if developer want to capture an variable inference, must declare a new variable. class A { var value = 1 func test() -> () -> Int { var capturedValue = self.value let editInfo = { () -> Int in capturedValue += 1 return capturedValue

Re: [swift-evolution] [Pitch] inout with capture variable

2016-10-05 Thread Mark Lacey via swift-evolution
> On Oct 5, 2016, at 9:06 PM, Cao Jiannan via swift-evolution > 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 =

Re: [swift-evolution] [Pitch] inout with capture variable

2016-10-05 Thread Daniel Resnick via swift-evolution
You can currently achieve the same result if you remove `[inout a]` since `var`s are captured by reference. On Wed, Oct 5, 2016 at 9:06 PM, Cao Jiannan via swift-evolution < swift-evolution@swift.org> wrote: > for example: > > var a = 1 > > let block = { [inout a] in > a += 1 > } > > bloc

[swift-evolution] [Pitch] inout with capture variable

2016-10-05 Thread Cao Jiannan via swift-evolution
for example: var a = 1 let block = { [inout a] in a += 1 } block() block() print(a) // 3 ___ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution