Swift vs. Kotlin 漫谈系列之接口

Swift vs. Kotlin 漫谈系列之接口,第1张

概述Kotlin 君和 Swift 君在一个团队一起开发已经很久了,由于平台的差异性,他们经常会进行一些技术上的交流(PK),「Kotlin vs. Swift」 系列就是他们在互相切磋时的语录。内容会由简及深,慢慢深入。 技术漫谈 Swift: Hi, Kotlin 君, Swift 4 发布了,我们今天就基于 Swift 4 的新语法来讨论一下接口吧? Kotlin: 好啊,接口对我们开发来说是个

Kotlin 君和 Swift 君在一个团队一起开发已经很久了,由于平台的差异性,他们经常会进行一些技术上的交流(PK),「Kotlin vs. Swift」 系列就是他们在互相切磋时的语录。内容会由简及深,慢慢深入。

技术漫谈

Swift:

Hi,Kotlin 君,Swift 4 发布了,我们今天就基于 Swift 4 的新语法来讨论一下接口吧?

Kotlin:

好啊,接口对我们开发来说是个很重要的概念。设计模式中要求我们写代码要遵循依赖倒置原则,就是程序要依赖于抽象接口,不要依赖于具体实现,也就是要求我们要面向接口编程。

Swift:

是的,在 Swift 中,接口被称为协议(即 Protocol ),苹果大大强化了 Protocol 在这门语言中的地位,整个 Swift 标准库也是基于 Protocol 来设计的,可以说 Swift 是一门面向 protocol 编程的语言。

Kotlin:

听起来好流比,那来说说你们是怎么定义接口的?

Swift:

我们用 Protocol 关键字来定义接口:

protocol SomeProtocol {    func f()}

你们呢?

Kotlin:

我们同 Java 一样,用 interface 关键字来定义接口:

interface MyInterface {    fun f()}

Swift:

嗯,看起来就是关键字不一样。你们怎么实现接口呢?

Kotlin:

一个类要实现某个接口,需要在类型名称后加上协议名称,中间以冒号(:)分隔:

class MyClass: MyInterface {    overrIDe fun f() {       // 具体实现    }}

一个类或者对象可以实现一个或多个接口。实现多个接口时,各接口之间用逗号(,)分隔.

Swift:

我们也是一样的,只是我们不需要写 overrIDe 关键字,只有当子类复写父类的方法或计算属性时才需要用 overrIDe 修饰。另外,我们还可以通过扩展类型来实现协议:

class MyClass {    //...类的定义}extension MyClass: SomeProtocol {    func f() {        // 具体实现    }}

Kotlin:

总结

以上是内存溢出为你收集整理的Swift vs. Kotlin 漫谈系列之接口全部内容,希望文章能够帮你解决Swift vs. Kotlin 漫谈系列之接口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1090201.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存