上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.11 结语
本章主要想告诉你的是Scala的操作符其实是方法调用,以及Scala的基础类型可以被隐式转换成富包装类,从而拥有更多实用的方法。在下一章,我们将向你展示什么叫作用函数式的风格设计对象,并相应地给出本章你看到的某些操作符的全新实现。
表5.4 一些富操作
表5.5 富包装类
[1]包(package)这个概念在第2章的第1步简单介绍过,会在第13章中详细介绍。
[2]所谓内部化,可以参考Java对Long对象的处理,最常用的-128L~127L会被内部化,即重用对象而不是新建。——译者注
[3]重载的方法名字相同但参数类型不同。重载方法在6.11节会有更详细的介绍。
[4]不过这并不是世界末日,还存在一个非常小的概率,即你的*p会被当作C++那样正常编译。
[5]按位异或方法对其操作元执行异或操作,相同的位交出0,不同的位交出1。因此0011^0101交出0110。
[6]整数类型最左边的位是符号位。如果最左边的一位是0,那么这个数就是正数;如果是1,则这个数是负数。
[7]自动检查并不会关心右边是否为null,不过任何讲道理的equals方法都应该对入参为null的情况返回false。
[8]至此你应该知道,Scala编译器会把这段代码翻译成 (bills.!*&^%~(code)).!()(英文语境下这种表示法常用于替代脏话—译者注)。