> On May 25, 2016, at 10:27 PM, Jacob Bandes-Storch <jtban...@gmail.com> wrote:
> 
> On Wed, May 25, 2016 at 8:15 PM, David Sweeris via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> On May 25, 2016, at 7:37 AM, Leonardo Pessoa via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>> Hi,
>> 
>> Couldn't this be solved by using tuples? If not because the syntax is not 
>> allowed I think this would be more coherent to do it using current syntax.
>> 
>> enum Planet : (mass: Float, radius: Float) {
>>     case mercury = (mass: 3.303e+23, radius: 2.4397e6)
>>     case venus = (mass: 4.869e+24, radius: 6.0518e6)
>>     case earth = (mass: 5.976e+24, radius: 6.37814e6)
>>     case mars = (mass: 6.421e+23, radius: 3.3972e6)
>>     case jupiter = (mass: 1.9e+27, radius: 7.1492e7)
>>     case saturn = (mass: 5.688e+26, radius: 6.0268e7)
>>     case uranus = (mass: 8.686e+25, radius: 2.5559e7)
>>     case neptune = (mass: 1.024e+26, radius: 2.4746e7)
>> }
> 
> 
> This would be my preferred solution… AFAIK, the only reason we can’t do it 
> now is that Swift currently requires RawValue be an integer, floating-point 
> value, or string. I don’t know why the language has this restriction, so I 
> can’t comment on how hard it would be to change.
> 
> - Dave Sweeris
> 
> Except you'd have to write Planet.mercury.rawValue.mass, rather than 
> Planet.mercury.mass.
> 
> This could be one or two proposals: allow enums with tuple RawValues, and 
> allow `TupleName.caseName.propertyName` to access a tuple element without 
> going through .rawValue.

Good point… Has there been a thread on allowing raw-valued enums to be treated 
as constants of type `RawValue` yet? Either way, removing the restriction on 
what types can be a RawValue is still my preferred solution.

- Dave Sweeris
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to