Ich möchte, dass dieser Code funktioniert.Bedingter Enum-Schalter mit gespeicherter Enum
Ich habe eine enum, wo der Fall Direction.Right einen Abstandsparameter nimmt.
enum Direction {
case Up
case Down
case Left
case Right(distance: Int)
}
Jetzt ein anderes Enum, das einen Direction-Parameter nehmen kann.
enum Blah {
case Move(direction: Direction)
}
let blah = Blah.Move(direction: Direction.Right(distance: 10))
Wenn ich auf dem Blah
Enum wechseln möchte ich in der Lage sein, bedingt wie dies auf dem Move.Right zu wechseln ...
switch blah {
case .Move(let direction) where direction == .Right:
print(direction)
default:
print("")
}
Aber ich bekomme die Fehlermeldung ...
Binäroperator ‚==‘ nicht auf Operanden vom Typ ‚Richtung‘ angewendet werden kann, und ‚_‘
Gibt es eine Möglichkeit, dies zu tun?
Ihre 'case.Move (Richtung) wo Richtung == .Up:' funktioniert gut für mich. –
@MartinR hmm .. Ich bekomme 'Binary Operator == kann nicht auf Operanden des Typs Richtung und _' mit dem angewendet werden. Kann jedoch ein sauberes und Build-Problem sein. Ich werde einen Blick darauf werfen. – Fogmeister
@MartinR ah, es scheint, wenn Sie eine Distanz zur Richtung hinzufügen, dann geht es schief. Lass mich bearbeiten ... – Fogmeister