Nik*_*tin 7 oop instance-variables self swift
昨天我在 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 的隐式属性,它完全等同于实例本身。
这很好,部分有用,但我认为它仍然不够
所以我问:
这是因为.self对象的属性就是该对象本身。所以你的第二个self没有改变。
事实上,你可以无限期地延长这个游戏(或者只要你有耐心):
let s = "Hello".self.self.self.self.self.self.self.self
// s is still simply "Hello"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |