[swift-evolution] Proposal: pattern match based on associated value(s) only
Amir Michail
amichail at gmail.com
Tue Feb 23 08:13:59 CST 2016
> On Feb 23, 2016, at 7:27 AM, Taras Zakharko <taras.zakharko at uzh.ch> wrote:
>
> I think that other designs (e.g. using classes/structs/protocols) offer a much better solution for this particular problem
>
That might be more work than just listing all the cases...
>> On 23 Feb 2016, at 13:17, Amir Michail via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>
>>>
>>> On Feb 22, 2016, at 10:11 PM, Brent Royal-Gordon <brent at architechies.com <mailto:brent at architechies.com>> wrote:
>>>
>>>> For example:
>>>>
>>>> enum Color {
>>>> ...
>>>> }
>>>>
>>>> enum Vehicle {
>>>> case Car(Color)
>>>> case Motorcycle(Color)
>>>> ...
>>>> }
>>>>
>>>> switch vehicle {
>>>> case _(.Red): … // pattern match based on associated value only
>>>> }
>>>
>>> As usual, Amir:
>>>
>>> 1. Why do you want this feature?
>>
>> In this example, if there are many kinds of vehicles, it would be annoying to have to write a case for each one to match associated value .Red.
>>
>>>
>>> 2. What's actually wrong with the status quo?
>>>
>>
>> What would that be for this example? Many cases?
>>
>>> 3. Can you talk about a non-toy example you've encountered where it would have made your code better?
>>>
>>> 4. Can you talk about the proposed design in a little more detail? Are there weird edge cases, and how would you handle them? (In the case of this feature, here's one I see: Suppose you have two different associated value types but they both have a .Red case. What happens then?)
>>>
>>> A half-dozen-word subject line and a code example simply aren't enough to evaluate a proposal. Without knowing exactly what you're proposing and why you think it's a good idea, we can't really evaluate it properly.
>>>
>>> --
>>> Brent Royal-Gordon
>>> Architechies
>>>
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160223/bee4103b/attachment.html>
More information about the swift-evolution
mailing list