13

Swift の値セマンティクスは好きですが、ミューティング関数のパフォーマンスが心配です。以下があるとします。struct

struct Point {
   var x = 0.0
   mutating func add(_ t:Double){
      x += t
   }
}

を作成し、次のように変更するとしますPoint

var p = Point()
p.add(1)

structメモリ内の既存のものは変更されますか、または次selfのように新しいインスタンスに置き換えられますか

self = Point(x:self.x+1)
4

3 に答える 3