Nach The Swift Programming Language sollte ich in der Lage sein, eine Swift-Enumeration mit Rohwerten von "Strings, Characters oder beliebigen Integer- oder Floating- Punktnummertypen ". Aber wenn ich versuche:"Raw-Wert für enum case ist nicht eindeutig" für Swift-Enum mit Float-Rohwerten
enum BatteryVoltage: Float {
case v3v7 = 3.7
case v5v0 = 5.0
case v7v4 = 7.4
case v11v1 = 11.1
case v12v0 = 12.0
}
... ich einen Kompilierungsfehler erhalten:
Raw value for enum case is not unique
auf der v7v4 Linie. Es kompiliert gut mit dem auskommentierten. Aber ach, es sieht einzigartig für mich aus. Wenn ich den Wert 7,41, oder 7.3 oder etwas anderes mache, kompiliert es sich gut. Was ist los? Schneller Fehler?
Das sieht definitiv wie ein Fehler aus. Es scheint zu passieren, wenn ein Enum-Wert genau gleich "2 mal ein anderer Enum-Wert" ist (aber keine ganze Zahl). –
Sie wissen was, Sie haben Recht. Beantworte deinen Kommentar und ich akzeptiere. (Und file ein Radar. Seufz.) –
Ich denke, dass dies mit der binären Darstellung eines Floats verbunden werden könnte. Vielleicht schneidet der Gleichheitsvergleich für Enums einige Bits ab. – Sulthan