scala一种面向对象和函数式编程理念加入静态类型语言中的混合体。
1.1 与你一同成长的语言
关联映射
所有的东西都是基于库模块的
增加新的类型
增加新的控制结构
java的线程模型是围绕着共享内存和锁建立的。
1.2 是什么让Scala具有可扩展性
在Scala里,函数就是对象。函数类型是能够被子类继承的类。
Scala是面向对象的
让最简单的对象与完整的计算机有同样的架构原则:用形式化的接口绑定数据和操作。
许多语言允许非对象值的存在,如Java里面的原始值。或者他们允许不隶属于任何对象的静态字段和方法。
Scala是纯粹的面向对象语言:每个值都是对象,每个操作都是方法调用。
Scala特质就像Java的接口,但可以有方法实现及字段。
Scala是函数式的
函数式编程有两种指导理念:
1.函数是头等值。
2.程序的操作应该把输入值映射为输出值而不是就地修改数据。
1.3为什么选择Scala
Scala是兼容的
Int类型代表了Java的原始整数类型int
Float代表了float
Boolean代表了boolean
Scala允许定义类型失配或者选用不存在的方法时使用隐式转换,比如当在字符串中寻找toInt
方法时,Scala编译器会发现String
类没有这种方法,但它会发现把Java的String
对象转换为Scala的RichString类实例的隐式转换,而RichString类中定义了这个方法。于是在执行toInt操作之前,转换被隐式应用了。