> On 12 Mar 2017, at 04:33, Ricardo Parada via swift-evolution
> <swift-evolution@swift.org> wrote:
>
> I read Haravikk's proposal a second time. I think I see the advantage of
> being able to use it with other types besides array.
>
> I also found disambiguating with the trailing comma to be intuitive. On the
> other hand I did not find it so intuitive to use @variadic and @nonVariadic
> to disambiguate. I would say just pick the trailing comma.
As written you'd be able to do both, it's just down to personal preference
which. However, while the comma works fine for enforcing a variadic call, there
does still need to be a way to tell Swift you want to call with an array, which
is what the nonVariadic attribute/compiler directive is for; fortunately this
is a case that only comes up when the function accepts elements of type Any, so
there's ambiguity as to whether you're passing an array of elements, or an
element that happens to be an array.
There are some other features being discussed where it might make sense to have
an expansion operator, and some have proposed using the trailing ellipsis for
this, so we could end up with something like:
let bar = myFunc(foo...) // call as an array
let baz = myFunc(foo,) // call variadically
But I'm just not sure if it's worth doing only for the single proposal or not?
I suppose I could mention it in alternatives though!
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution