当我按下 Command 并单击AnyObject
导航到AnyObject
的界面时,我遇到了以下定义:
public typealias AnyObject
我看到此注释写在定义上方:
所有类隐式遵循的协议。
好吧,如果不显式使用关键字AnyObject
,我将无法理解此定义如何使protocol
成为protocol
。
另外,它是没有typealias
的{{1}},这是无效的语句。
我不能写这样的声明:
= someType
出现编译错误。
任何人都可以解释这里到底发生了什么吗?
答案 0 :(得分:2)
问题是,按住public class Main {
public static void main(String[] args) throws Exception {
OtherClassInner inner = new OtherClassInner();
}
}
class OtherClass {
static class OtherClassInner {
}
}
class YetAnotherClass {
static class OtherClassInner {
}
}
的同时按下AnyObject
并不会真正看到源代码,而只是看到一个CMD
界面。如果您深入研究Swift源代码,您实际上会发现
public
实际上看起来像这样:
public typealias AnyObject
这是包含此代码https://github.com/apple/swift/blob/master/stdlib/public/core/Policy.swift的文件的链接