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

标签 ios macos swift

我正在阅读 Apple 的 Swift Programming Language 一书,并遇到了以下示例。在继续之前,我想确保我的概念是正确的。

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 替换。在这两种情况下,内存中的位置是相同的,并且在分配特定实例时分配。

关于ios - 了解具有 self 属性的变异函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25746703/

相关文章:

ios - 我可以以编程方式滚动到 UIPickerView 中所需的行吗?

ios - 在 SpriteKit 中更改 contactTestBitMask 后检测接触

objective-c - iOS 如何从数组中读取值

macos - Pritunl 客户端 : Unable to communicate with helper service, 尝试重新启动

xcode - SwiftUI 3 MacOs 表格单选并双击打开表格

ios - 通过 Bundle.main.loadNibNamed 重用标识符

ios - 通过单个 header 导入所有 header ?

ios - Apple 开发者您的证书已被吊销

arrays - Swift - 获取数组中的第一项,并返回元素和索引

ios - 将一个导航栏更改为透明会将所有导航栏更改为透明