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

什么是Scala最便宜的类型?

发布时间:2020-12-16 09:02:34 所属栏目:安全 来源:网络整理
导读:我需要使用一个类型(任何类型)作为隐式的标记作为类型参数,以区别于另一个隐式.这很奇怪,但这可能是另一个问题. 由于我可以使用任何类型,我在考虑使用最便宜的,在内存占用和初始化时间方面.在这种情况下,它可能不会对性能产生太大影响,但问题很有趣:哪一个
我需要使用一个类型(任何类型)作为隐式的标记作为类型参数,以区别于另一个隐式.这很奇怪,但这可能是另一个问题.

由于我可以使用任何类型,我在考虑使用最便宜的,在内存占用和初始化时间方面.在这种情况下,它可能不会对性能产生太大影响,但问题很有趣:哪一个是Scala最便宜的类型?

在Java中,答案显然是java.lang.Object.但是Scala有一些“有趣”的类型:Any,AnyVal类型和底部类型,并且可能围绕它们进行优化. Nothing类型无法实例化,因此从此比较中排除.

解决方法

如果您选择Any或AnyVal,那么您传递的任何原语都将被装箱,因此可能已经过了.

AnyRef确实是一个不错的选择.

如果没有任何类型参数化,那么“基元”也是很好的选择 – 例如布尔或Int.

而且还有Null,这是一个非常有趣的选择,因为它根本不分配任何东西,而且它是一个文字,所以它必然是快速的.不知道你究竟在做什么,我无法分辨这是否是有效的选择.

另一个有趣的选项是java.lang.Integer(使用静态方法valueOf),因为它保证了小值的引用相等性(你必须检查文档以查看精确的范围),这意味着不涉及任何分配.

(编辑:李大同)

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

    推荐文章
      热点阅读