协议vs接口

本文关键字:接口 vs 协议 | 更新日期: 2023-09-27 18:06:36

我一直在阅读swift文档,并通过playground工作。我必须承认我对Objective-C/iOS开发一无所知(至少在Xamarin之外)。在我看来,协议似乎与c#接口相同。

然而,我注意到,同时在网上看,Objective-C有一个协议(源)接口的概念(虽然我不确定有什么区别)。Swift似乎并没有两者兼备——只有协议。

谁能解释一下,对于swift来说,协议和c#接口之间的区别/关系是什么?

更新:我很欣赏答案可能在功能上与列出的重复相同,但我认为,考虑到这是关于不同的语言,这个问题本身仍然有价值。毕竟,swift的新开发人员可能对Java一无所知(除了Javascript之外,我对Java一无所知)。为了回答他们的问题,把期望放在一个人掌握完全不同的语言系统的知识上,这有点过分了,不是吗?关于meta的讨论也在讨论这个问题。

协议vs接口

Objective C协议的作用与Java/c#中的接口基本相同。Objective C接口文件是不同的。和C一样,Objective C也有接口文件,它们公开声明类的方法和属性,然后在实现文件中实现。例如,您可能有一个类的接口文件,看起来像这样:

@interface  
-(void)myMethod;
@end

那么在你的实现文件中你实际实现了这个方法:

-(void)myMethod{
    //code
}

Swift没有单独的接口和实现文件。它只有协议