所以说我有一个Vector
结构:
struct Vector
{
var x: Double = 0
var y: Double = 0
init(x: Double, y: Double)
{
self.x = x
self.y = y
}
}
我创建了一个添加两个Vector
结构的中缀函数:
func +(left: Vector, right: Vector) -> Vector
{
return Vector(left.x + right.x, left.y + right.y)
}
这很好用,但是当我想创建一个将两个Vectors
加在一起并将左值设置为结果的中缀函数(如+=
)时,它就不起作用了:
func +=(left: Vector, right: Vector)
{
left.x += right.x
left.y += right.y
}
当我在我的代码中尝试它时,它什么也没做。如果我将Vector
结构更改为一个类,那么它就可以工作。
我知道 Swift 复制structs
和引用classes
,那么有没有办法做到这一点,或者这是不可能的?
提前致谢!