だから私はVector
構造を持っているとしましょう:
struct Vector
{
var x: Double = 0
var y: Double = 0
init(x: Double, y: Double)
{
self.x = x
self.y = y
}
}
Vector
そして、次の 2 つの構造を追加する中置関数を作成します。
func +(left: Vector, right: Vector) -> Vector
{
return Vector(left.x + right.x, left.y + right.y)
}
これはうまくいきますが、2 つを加算Vectors
して左の値を結果に設定する中置関数を作成したい場合 ( のように+=
)、うまくいきません:
func +=(left: Vector, right: Vector)
{
left.x += right.x
left.y += right.y
}
コードで試してみると、何もしません。Vector
構造をクラスに変更すると、機能します。
structs
Swift が をコピーして参照していることは知っていclasses
ますが、これを行う方法はありますか、それとも不可能ですか?
前もって感謝します!