On 21.07.2016 12:33, Fabian Ehrentraud via swift-evolution wrote:
It's error by design: we don't allow tuple unpacking in closure parameters.
Another example:
func call(block: ((Int, Int)) -> Int) // note double parens
call { (a, b) in print(a + b) } // will be error
call { (a) in print(a.0 + a.1) } // ok
Is there a reason for this design, or would it be possible / make sense to
support this?
I believe because there is a question: is `(a,b)` is a list of two
parameters or unpacked tuple? The closure definition requires one tuple
parameter.
But probably such syntax could be used to define unpacked tuple in parameters :
call { ((a, b)) in print(a + b) } // note double parens
this feels consistent with tuple definition ((Int, Int)), the question here
is if such syntax is not-confusing and is clear about arguments.
In any case this is additive feature, so we should discuss it after Swift 3.0
F
_______________________________________________
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