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
> 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
>
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
> 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 =
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
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