【发布时间】:2015-08-31 18:50:11
【问题描述】:
我正在阅读来自Apple developer page 的 iOS 教程。
在我看来protocol 和interface 几乎具有相同的功能。
两者有区别吗?
项目中的不同用法?
更新
是的,我确实阅读了上面的链接,但我仍然不确定protocol 和interface 之间的区别和用法。当我提出这样的问题时,我希望看到有关该主题的简单解释。有时可能很难从文档中获取所有内容。
【问题讨论】:
-
Swift 中的协议和 Java 中的接口是相同的概念。见here
-
我认为像这样关于语言差异的问题对于理解语言特征非常有用。而且我认为它们不会导致不必要的自以为是的答案,也不会很容易在文档中找到答案。所以我认为对这个问题投反对票是不合理的。
-
这里有几个关于 Java 接口的现实世界中的关键点 - stackoverflow.com/a/41143492/294884 - 这对于任何刚接触 Swift、尝试 Java 的人来说都是关键
-
在另一个方向上,值得记住的是,Swift 的整个存在的理由是它用于“面向协议的编程”。你在 Swift 中无处不在地使用“协议扩展”来做所有事情。例如here 是一个关于 Swift 的微妙问题(即:“关于协议扩展”),它说明了一些问题。
-
在 Swift 中,使用协议名称而不是接口,因为在 Objective C 中来自 C 的头文件(无用的重复项)被称为接口