Scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述。
类抽象机制的扩展有两种途径:一种途径是子类继承,另一种途径是灵活的混入机制。这两种途径能避免多重继承的种种问题。
静态类型
Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。类型系统具体支持以下特性:
-
泛型类
-
协变和逆变
-
标注
-
类型参数的上下限约束
-
把类别和抽象类型作为对象成员
-
复合类型
-
引用自己时显式指定类型
-
视图
-
多态方法
扩展性
Scala的设计秉承一项事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展。Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:
-
任何方法可用作前缀或后缀操作符
-
可以根据预期类型自动构造闭包。