[swift-evolution] Proposal: pattern match based on associated value(s) only

Taras Zakharko taras.zakharko at uzh.ch
Tue Feb 23 06:22:54 CST 2016


I think that other designs (e.g. using classes/structs/protocols) offer a much better solution for this particular problem

> On 23 Feb 2016, at 13:17, Amir Michail via swift-evolution <swift-evolution at swift.org> wrote:
> 
>> 
>> On Feb 22, 2016, at 10:11 PM, Brent Royal-Gordon <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
> 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/ff50e74c/attachment.html>


More information about the swift-evolution mailing list