IIRC, string interpolation prepends the module name if the enum belongs to a 
module: “MyLib.Mars” instead of just “Mars”. It’s also been a source of 
compiler crashes, at least in the past.

Those two factors forced me into this ugliness: 
https://github.com/bustoutsolutions/siesta/blob/master/Source/ResourceObserver.swift#L106-L115

A clean, documented, supported way of exposing the enum case name that the 
runtime clearly already has available seems sensible — and should be 
independent of the raw type.

Cheers, P

> On Jun 1, 2016, at 5:10 AM, Charlie Monroe via swift-evolution 
> <[email protected]> wrote:
> 
> This is, however, kind of a hack IMHO that relies on the compiler behavior 
> that isn't well documented.
> 
> For example, this:
> 
> enum Planet {
>       case Earth
>       case Mars
> }
> 
> "\(Planet.Mars)" // This is "Mars"
> 
> 
> Works as well. You don't need to have the represented value to be String.
> 
> Note that this:
> 
> - works both when you have a plain enum, or enum Planet: Int, or whatever raw 
> value kind
> - does not work (!) when declared as @objc - then the result is "Planet".
> 
>> On Jun 1, 2016, at 9:52 AM, Patrick Smith via swift-evolution 
>> <[email protected]> wrote:
>> 
>> I had no idea you could do this!!
>> 
>>> On 1 Jun 2016, at 12:32 PM, Brent Royal-Gordon via swift-evolution 
>>> <[email protected]> wrote:
>>> 
>>> Who said anything about repeating the name?
>>> 
>>> Welcome to Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.30). 
>>> Type :help for assistance.
>>> 1> enum Planet: String { case mercury, venus, earth, mars, jupiter, saturn, 
>>> uranus, neptune }
>>> 2> Planet.mercury.rawValue
>>> $R0: String = "mercury"
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected]
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to