I know, but that won't support pattern matching. Félix
> Le 23 déc. 2015 à 02:22:07, David Waite <da...@alkaline-solutions.com> a > écrit : > > In the case where your input is hashable, you could just do: > > let i = [.Red:0xff0000, .Green:0x00ff00, .Blue:0x0000ff][color] > > this would mean that color must be a Color and not an Optional<Color> > (because of swift 2.x limitations) > > -DW > >> On Dec 22, 2015, at 8:04 AM, Félix Cloutier via swift-evolution >> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote: >> >> I like the gist of it too, though you seem to introduce both a new keyword >> and a new syntax. (To be clear, I like the syntax but I'm ambivalent towards >> reusing switch instead of which.) >> >> My minor suggestions would to avoid braces for things that aren't scopes; >> that either the comma or the the question mark is redundant in their current >> position (you need a start delimiter or an end delimiter but you don't need >> both); and that it needs a way to handle a default case if enumeration isn't >> exhaustive (I'd do that by returning an optional). >> >>> let i = which color (.Red: 0xff0000, .Green: 0x00ff00, .Blue: 0x0000ff) ?? >>> 0x000000 >> >> >> Thinking out loud, once you remove the question marks it really looks like a >> dictionary literal, so maybe it could even use square brackets to close the >> gap. >> >>> let i = which color [.Red: 0xff0000, .Green: 0x00ff00, .Blue: 0x0000ff] ?? >>> 0x000000 >> >> >> I thought about subscripting a dictionary literal in place: >> >>> [Color.Red: 0xff0000, ...][color] ?? 0x000000 >> >> >> but that won't support elaborate pattern matching, and I think that this is >> a deal breaker for the functional folks. >> >> Félix >> >>> Le 22 déc. 2015 à 09:31:32, Charles Constant <char...@charlesism.com >>> <mailto:char...@charlesism.com>> a écrit : >>> >>> Just goofing on this a little. What if we called it a "which" statement, >>> instead of a "switch" statement? It's a bit cutesy, but not too verbose, >>> and it makes sense if you read it aloud. >>> >>> let i = which color { >>> ? .Red: 0xFF0000, >>> ? .Green: 0x00FF00, >>> ? .Blue: 0x00000FF >>> } >>> >>> let i = which boo { >>> ? true: 1, >>> ? false: 0, >>> ? nil: -1 >>> } >>> >> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org <mailto:swift-evolution@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-evolution >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution