So sagen, ich habe eine Vector
Struktur:Mutating Infix Funktionen für Structs Swift
struct Vector
{
var x: Double = 0
var y: Double = 0
init(x: Double, y: Double)
{
self.x = x
self.y = y
}
}
Und ich schaffen eine Infix Funktion, die zwei Vector
Strukturen ergänzt:
func +(left: Vector, right: Vector) -> Vector
{
return Vector(left.x + right.x, left.y + right.y)
}
Dieses gut funktioniert, aber dann, wenn Ich möchte eine Infix-Funktion erstellen, die zwei Vectors
zusammen addiert und den linken Wert auf das Ergebnis setzt (wie +=
), dann funktioniert es nicht:
func +=(left: Vector, right: Vector)
{
left.x += right.x
left.y += right.y
}
Wenn ich es in meinem Code versuche, tut es nichts. Wenn ich die Vector
Struktur in eine Klasse ändere, dann funktioniert es.
Ich weiß, dass Swift kopiert structs
und Referenzen classes
, gibt es eine Möglichkeit, dies zu tun, oder ist das unmöglich?
Vielen Dank im Voraus!