> On 19 Apr 2016, at 00:14, Justin Jia via swift-evolution
> <[email protected]> wrote:
> variadic functions are really easy to understand.
>
> For example:
>
> sum(x)
> average(x)
> NSLog("%d", x)
> NSString.stringWithFormat("%d", x)
I think the question really is whether not having to add square brackets is
really enough to justify a whole language feature? Basically you’ve got two
ways you could do this:
NSString.stringWithFormat(“%d”, x)
NSString.stringWithFormat(“%d”, [x])
The second format is a tiny bit longer, but more explicit at the call-site
about what is going on, whereas the first, if you don’t know the function, is
indistinguishable from a function that takes a single argument of whatever type
x is.
I’m kind of in the remove variadic functions camp as a result, as I’d prefer to
be more explicit about the type rather than less, and it’s not as if two square
brackets is going to kill anyone. The main issue for me is whether there are
ways for variadic functions to be optimised that aren’t available to a
full-blown array? I don’t know enough about the compiler side to comment on
that, but it seems like maybe there could be an optimisation for variadic
argument lists.
The other question is how would we implement ArrayLiteralConvertible (and
DictionaryLiteralConvertible) without variadic functions? As if the aim is to
instantiate an array alternative without having to have a full array instance
first then variadic functions may be able to allow this? Again I’m not certain
on that point._______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution