Hm, sorry but I’m still not convinced :( I still find it confusing and I think if it wasn’t in Swift already, it would not be added. Maybe someone can come up with a strong reason why it should be added if it weren’t there.
- Dennis > On Apr 18, 2016, at 10:10 AM, Gwendal Roué <[email protected]> wrote: > > >> Le 18 avr. 2016 à 10:02, Dennis Weissmann <[email protected]> a >> écrit : >> >> That’s IMO already a problematic case: >> >>> DatabaseTable.select(id, name).order(name, id) // What’s the >>> problem? >>> // vs. >>> DatabaseTable.select([id, name]).order([name, id]) // OK, of >>> course... But some people will find it a litle short >> >> The problem is that you can’t tell by looking at the call site whether >> `select` takes an id and a name as parameter (the function being declared as >> `func select(id: String, _ name: String)` or a vararg `func select(string: >> String…)`. >> Both call sites look like this: >> >>> select(id, name) >> >> I think it would make the language clearer and more consistent if varargs >> were removed. > > Sorry my example wasn’t clear enough, and that’s why you couldn’t tell by > looking at the call site what was happening. You were missing context. "id" > and "name" are not values, they’re database columns. It’s more something > along: > > DatabaseTable { > func select(columns: Column…) { … } > } > > people.select(idColumn, nameColumn) > furniture.select(nameColumn, widthColumn, heightColumn, depthColumn, > priceColumn) > > (Sometimes examples are too complex, and don't serve well their purpose - my > mistake) > > Maybe you’ll follow the counter argument now. Which is "of course a variadic > function can always be turned into a function that takes an array, what a > surprise, but this is not always the good thing to do." > > Regards, > Gwendal Roué
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
