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

Scala – 新的vs对象扩展

发布时间:2020-12-16 09:27:22 所属栏目:安全 来源:网络整理
导读:使用new运算符定义对象与通过扩展类定义独立对象之间有什么区别? 更具体地说,给定类型GenericType {…},val a = new GenericType和object a之间的区别是什么? 解决方法 实际上,对象声明的初始化方式与字节码中的new相同.但是,有很多不同之处: 对象作为单
使用new运算符定义对象与通过扩展类定义独立对象之间有什么区别?

更具体地说,给定类型GenericType {…},val a = new GenericType和object a之间的区别是什么?

解决方法

实际上,对象声明的初始化方式与字节码中的new相同.但是,有很多不同之处:

>对象作为单例 – 每个属于一个只存在一个实例的类;
>对象被懒惰地初始化 – 它们只会在第一次被引用时被创建/初始化;
>同名的对象和类(或特征)是伴侣;
> object上定义的方法在伴侣类上生成静态转发器;
>对象的成员可以访问伴侣类的私有成员;
>在搜索implicits时,会查看相关*类或特征的伴随对象.

这些只是我能想到的蝙蝠的一些差异.可能还有其他人.

*什么是“相关”类或特征是一个较长的故事 – 查看Stack Overflow上的问题,如果您感兴趣,可以解释它.如果您无法找到它们,请查看sciki标记的Wiki.

(编辑:李大同)

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

    推荐文章
      热点阅读