Scala的核心力量是什么
基于自上而下和自下而上的软件设计和编程实践的基础之上结合数据状态不可变性基础之上融合了类型系统和 隐式转换技巧的函数式编程
说明1 自下而上和自上而下的编程方法完美结合
自下而上(对象):面向对象编程,把软件系统作为一个个对象,具体的功能由对象本身以及对象之间的消息传递来完成
两者结合,非常强有力的表达现实世界
说明2:数据状态不可变性质
假如判断两个对象是否相等,必须判断上下文,什么条件,什么状态相等。如果是多线程并发编程。对象的数据状态修改,不是一件简单的事情。如果是一套复杂的继承结构,对象有很深度的引用。判断对象是否相等,非常困难。
并发编程hashmap序列化后,下一次反序列化,即使在同一台机器。如果状态可以变化,下一次不能确保完全一致。
可变状态数据要加锁,不可变不需要锁,提升几十倍性能。
简化编程,提升效率,减少bug,方便分布式并发
说明3:类型系统+隐式转换 scala高手表现
说明4:函数式编程
补充:Scala基于JVM可以直接调用Java的所有库和框架的功能,站在巨人的肩膀上
Scala的环境定理
定律1:状态不可变
定律2:优先考虑面向值的编程方式,一般都和不可变形结合
定律3:多步骤对象操作是采用this.type构造的链式表达式
定理4:使用Option(None和Some),用None取代Null.Option可以像普通集合操作Map,极大简化代码
定理5:使用伴随对象构造接口或者抽象类或者类的实例。