1

だから私は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構造をクラスに変更すると、機能します。

structsSwift が をコピーして参照していることは知っていclassesますが、これを行う方法はありますか、それとも不可能ですか?

前もって感謝します!

4

2 に答える 2