I agree that the probably isn't a better story for literals and Sets and
that I wish that there were a better story.
The best that I can think of is some sort of flag outside of the Array
literal, for instance, #["A", "B", "C"] or just using keys that people
aren't already accustomed to like option-'\' and option-shift-'\'. «"A",
"B", "C"]»
TJ
···
On Tue, Jan 19, 2016 at 4:55 PM, Greg Parker via swift-evolution < swift-evolution@swift.org> wrote:
On Jan 18, 2016, at 2:55 PM, Howard Lovatt via swift-evolution < > swift-evolution@swift.org> wrote:
On Tuesday, 19 January 2016, Jack Lawrence <jackl@apple.com> wrote:
On Jan 18, 2016, at 2:50 PM, Liam Butler-Lawrence via swift-evolution < > swift-evolution@swift.org> wrote:
Set("a", "b", "c”) doesn’t compile. It currently has to be
Set(arrayLiteral: "a", "b", "c”). That said, I’d be satisfied with
removing the external parameter name “arrayLiteral”. Not only is it
unnecessary, but it’s confusing too: variadic parameters are not the same
as an Array.init(arrayLiteral:) is there to satisfy ArrayLiteralConvertible. Set([“a”,
“b”, “c”]) works just fine.Sure, but you could add another overload without the label.
Only if you break existing code. Consider this expression:
Set(["a", "b"])
Is this
1. a Set<String> with two elements "a" and "b"
2. a Set<Array<String>> with one element ["a", "b"]Currently it means #1. You could change it to mean #2, but that breaks
existing code that expects #1. You could try to overload the no-name
initializer, but that will be confusing to humans in some cases.--
Greg Parker gparker@apple.com Runtime Wrangler_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution