[swift-evolution] Tuple
Vladimir.S
svabox at gmail.com
Thu Jul 21 06:50:36 CDT 2016
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
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
More information about the swift-evolution
mailing list