了解具有self属性的变异函数

剃刀

我正在研究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、3的对吗?

柯斯坦斯

确切地说,将值1和1替换为3、3。在两种情况下,内存中的位置都是相同的,并且在分配了特定实例时会进行分配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章