Ich stoße immer wieder auf dieses Problem. Im wirklichen Leben sehe ich Mengen von Zahlen, die eine bestimmte Qualität repräsentieren, aber ich habe Schwierigkeiten, sie in Swift als unterschiedliche Typen auszudrücken.Wie definiere ich einen eingeschränkten Typ in Swift?
Zum Beispiel der Prozenttyp. Lassen Sie mich sagen, ich möchte einen Prozent-Typ mit nur ganzen Zahlen haben. Auch dieser Prozentsatz würde niemals über 100 oder unter Null gehen können.
Ich könnte das in reinem C als eine Union ausdrücken, mit Mitgliedern von 0 bis 100. Allerdings scheint mir die Verwendung der Swift-Enum für den zugrunde liegenden Wert-Typ nicht zu korrigieren Ansatz. Oder ist es?
Lassen Sie uns ein anderes auswählen. Briborb Interbank Zinssatz. Ich weiß, dass es immer zwischen 0 und 20 Prozent liegen wird. Aber die Zahl selbst wird eine Dezimalzahl mit zwei Dezimalstellen sein.
Was ist der richtige Weg, um mit diesem Problem in Swift umzugehen? Generika vielleicht?
"Ich könnte das in reinem C als eine Union ausdrücken". Bitte zeigen Sie den Code davon. – hnh
alles, was ich über "Constraints" mit Typen google up können alle Generics beinhalten. Wenn das mein Problem wäre, würde ich wahrscheinlich meine eigene Klasse (z. B. "BriborInterest") erstellen, wo ich die Eingabe in der Init oder Setter für das Objekt überprüfen und/oder beschränken würde. I.E. Wenn die Eingabe nicht gültig ist, werfen Sie eine Ausnahme aus oder geben Sie nil zurück. –