> On Feb 27, 2017, at 9:59 AM, Haravikk <[email protected]> wrote: > > >> On 27 Feb 2017, at 17:10, Jose Cheyo Jimenez via swift-evolution >> <[email protected] <mailto:[email protected]>> wrote: >> On Feb 26, 2017, at 9:25 AM, Tino Heth via swift-evolution >> <[email protected] <mailto:[email protected]>> wrote: >> >>> I suggest to take a look at the topics "Variadics as an Attribute" and >>> "array splatting for variadic parameters" and >>> https://github.com/Haravikk/swift-evolution/blob/a13dc03d6a8c76b25a30710d70cbadc1eb31b3cd/proposals/nnnn-variadics-as-attribute.md >>> >>> <https://github.com/Haravikk/swift-evolution/blob/a13dc03d6a8c76b25a30710d70cbadc1eb31b3cd/proposals/nnnn-variadics-as-attribute.md>. >>> >>> This is basically the other way round (arrays would accept variadic >>> arguments), but it has the same effect — and more: >>> You get rid of the odd "…" type, and it's also possible to use this with >>> types besides array (set, iterator….) >> I agree with getting rid of the Type... because we could use ... in slicing >> (see String manifesto). Why must it be an attribute and not just "*" ? The >> advantage I see is that this will play great in also deconstructing >> collection like things like Array, Slice and Tuple. This is already familiar >> to python and ruby users. > > Part of the aim is to avoid less easily discovered custom syntax; the point > of the proposal is that there's no need for a special syntax just to support > variadics as attributes already exist, plus they're more descriptive about > what they do and easy to look-up.
These is very unfortunate as a solution for “spreading” a collection or tuple so that It can be applied to function taking a variadic. It makes sense on the declaration site but not on the call site. someFunc(@nonVariadic [1]) someFunc(@variadic [1]) There is nothing special about variadic/ spreading that would warrant an attribute. I think using attributes is not different than using a keyword like c# uses. http://stackoverflow.com/questions/7580277/why-use-the-params-keyword <http://stackoverflow.com/questions/7580277/why-use-the-params-keyword> Do we really want to tag every array/tuple with a @variadic or @nonVariadic tag when packing and unpacking parameters? variadic/ spreading (AKA packing / unpacking ) is a well known concept to most languages. someFunc(*[1]) // python, ruby, someFunc(...[1]) // php, ES6, golang I am not proposing prefix * or prefix … as I think we should let the community decide but I would be opposed to using attributes or keywords.
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
