相关疑难解决方法(0)

为什么“self.self”可以快速编译和运行?

昨天我在 Swift 中查看了一段代码,其中包括这一行:

self.self.someProperty
Run Code Online (Sandbox Code Playgroud)

这让我感到惊讶,因为self一词被保留并用作对当前实例的引用。

起初我用其他语言检查了这种现象,但都出错了。这并不奇怪 - 但是,为什么它会在 swift 中编译和运行?

其次,我在互联网上搜索了有关此内容的信息,但没有找到任何相关内容...

编辑 我从我的支票中复制了这一点:

self.someProperty//exactly the same as:
self.self.someProperty//or as:
self.self.self.self.self.someProperty
Run Code Online (Sandbox Code Playgroud)

Swift 文档给出了一些解释:

类型的每个实例都有一个称为 self 的隐式属性,它完全等同于实例本身

这很好,部分有用,但我认为它仍然不够

所以我问:

  1. 为什么有效?
  2. 这背后有什么有用的逻辑吗?

oop instance-variables self swift

7
推荐指数
2
解决办法
1950
查看次数

标签 统计

instance-variables ×1

oop ×1

self ×1

swift ×1