我正在使用Apple的Swift编程语言书,并且遇到了以下示例。我想在继续之前确保我的概念正确。
struct Point {
var x = 0.0, y = 0.0
mutating func moveByX(deltaX: Double, deltaY: Double) {
self = Point(x: x + deltaX, y: y + deltaY)
}
}
该书指出" moveByX函数创建了一个全新的结构,其x和y值是指向目标位置。"
所以,如果我这样做;
var myPoint = Point(x: 1, y: 1)
myPoint.moveByX(2, deltaY: 2)
我的理解是Swift从内存中释放值为1,1的myPoint结构,并且它不再可用。在它的位置创建一个值为3的新的。我是对的吗?
答案 0 :(得分:1)
准确地说,值1和1被3替换。内存中的位置在两种情况下都是相同的,并且在分配特定实例时分配。