Enums are a fundamental part of Swift, so I guess they won't change much — but 
I wonder if anyone shares my observations in real-life use…

Afair, there are three different types of enums:
- Enums with raw values
- enums with associated objects
- Plain enums (no underlying value)

I use the first type quite often (as a convenient way to create string 
constants, or for serialization), but see no real value in plain enums (they 
offer nothing over enums backed with a raw value).

The second type is special:
It looks like a really cool concept, and and I started several designs based on 
them — just to realize later that structs and classes are a better fit.
My conclusion so far is that enums perform bad as soon as you want to attach 
additional data or behavior; one or two computed properties are ok, but those 
switch-statements quickly become a burden.
There are some options to work around this problem, but I guess I'll just stay 
away from enums with associated objects by default (with the exception of 
error-types — imho those can be modeled quite nicely).

So, that's my current perception, and I'm curious if others had similar 
experiences — or, even more interesting, completely different observations and 
elegant solutions based on enums.

- Tino
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to