scala – AnyVal的目的是什么?
我想不出AnyVal类型会有用的任何情况,尤其是添加Numeric类型以便在Int,Long等上进行抽象.是否有任何AnyVal的实际用例,或者它只是一个制作的工件类型层次结构有点漂亮吗?
只是为了澄清,我知道AnyVal是什么,我想不出任何时候我真的需要它在Scala中.什么时候我需要一个包含Int,Character和Double的类型?似乎只是在那里使类型层次更漂亮(即,将AnyVal和AnyRef作为兄弟,而不是让Int,Character等直接从Any继承)看起来更好. 解决方法
我们去录像带,呃,规范12.2:
所以,也许问题是,如果一切都是一个对象,为什么我不关心某些东西是否被表示,即实现为一个对象?这是实现细节中的实现. 但是,我们不要假装,当然你关心.你从不专攻吗? 规范继续:
因此,除了所需值类的枚举之外,对AnyVal的测试是有意义的. 也就是说,你必须接受@ drexin的答案,因为如果你没有使用值类进行扩展方法,那么你就不会真正生活. (从某种意义上讲,生活起来.) SIP的动机:
您可以将扩展方法本身标记为@inline,并且所有内容都是内联的:没有对象包装器,并且您的小方法是内联的. 我每天都使用这个功能.昨天我遇到了一个bug.该错误已经修复.这就是说它是一个很酷的功能,Scala人会从Coursera中抽出时间来消除它中的一个小错误. 这让我想起,我忘了问,这不是Coursera测验问题,是吗? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- playframework – New Relic不从Play 2.2.1 Scala App收集数
- 无法导入自定义组件 – Angular2和TypeScript
- Vim – 在mercurial中提交时显示差异;
- vim 用法大全 -葵花宝典,含泪推荐,个人最常用的
- shell – 如何使用C程序中的选项运行’ls’?
- angularjs – 在元素的ng类中可以有多个单独的三元表达式吗
- class – 在Angular 2和Ionic 2中访问整个应用程序的关键数
- 了解restful webservice概念
- shell命令上的单个破折号和双破折号标志有什么区别?
- Scala或Spring的Spring替代品?