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
