加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala中的特征与包

发布时间:2020-12-16 08:59:47 所属栏目:安全 来源:网络整理
导读:看完 Martin’s keynote on Reflection and Compilers之后我似乎无法从头脑中得到这个疯狂的问题.马丁谈到了“(婚礼)蛋糕模式”,其中特质扮演着核心角色.我想知道,为什么在我们已经有特征时我们需要包装?包装能做什么,特质(至少理论上)不能做什么? 我不是
看完 Martin’s keynote on Reflection and Compilers之后我似乎无法从头脑中得到这个疯狂的问题.马丁谈到了“(婚礼)蛋糕模式”,其中特质扮演着核心角色.我想知道,为什么在我们已经有特征时我们需要包装?包装能做什么,特质(至少理论上)不能做什么?

我不是在谈论当前的实现,我只是想象一下,如果我们用特征替换包,那会是什么样的编程.在我脑海里,它会是这样的:

>少一个关键字(不需要包)
>不需要包对象

总结我的所有问题:

>理论上可以从语言中删除包并使用特征.
>我们从这一变化中获得了哪些其他好处? (我在考虑第一类包和第一类导入,但mixin组合是编译时的事情,虽然超级调用是动态绑定的)
> Java / JVM兼容性是唯一可以阻碍的吗?

更新

Daniel Spiewak在this keynote谈到依赖注入只是你可以用Cake Pattern做的所有东西的冰山顶.

解决方法

Martin Odersky说Scala可以通过特征,对象,方法和路径来实现(我希望我没有忘记一些事情).

类和包都在那里,因为Scala旨在成为一种托管语言,即运行的语言(这实际上不是有趣的位),并与主机平台(这是重要的点)互操作. Scala旨在与之互操作的一些主机平台是Java平台和CLI,它们都具有类和包的概念(在CLI的情况下为命名空间),这些概念非常明显,不能轻易表达为特征或对象.这与接口不同,接口可以简单地映射到纯粹抽象的特征.

上面的陈述是在讨论可能从Scala中删除泛型的过程中做出的,因为泛型可以做的所有事情也可以通过抽象类型来实现.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读