1.Scala的核心力量
基于自下而上和自上而下的软件设计和编程实战基础之上结合数据状态不可变性基础之上的融合了类型系统和隐式转换技巧的函数式编程
说明1:
自上而下(对象/接口):面向对象编程,把软件系统作为一个个对象,具体的功能由对象本身以及对象之间的消息传递完成
自下而上(动作):函数式编程,强调功能的具体实现
两者结合,非常强有力地表达了现实世界
至于软件设计和编程实战就是面向对象和函数式编程都有自己的一套设计理念和侧重点
说明2:
假如有这样一个场景,要判断两个对象是否相等,
这个时候是多线程并发的,有复杂的继承结构,该对象中有深层的引用,假如这时候对象的数据状态是可变的,就会变得非常复杂
如果说数据状态不可变,可以简化编程,提升效率,减小bug,方便(分布式)并发
说明3:类型系统+隐式转换,这是证明一个人是否是Scala高手最直接的方式,也是Scala的强悍之处
说明4:函数式编程
补充:Scala基于JVM可以直接调用Java的所有的库的功能,站在巨人的肩膀上
Scala的黄金定律:
1.状态不可变
2.优先考虑面向值的编程方式,面向值的编程一般和不可变性结合起来
其实这就是一种面向值的编程方式
这样可以极大地简化编程的代码
def main(args:Array[String]){
def processData(a:Int):String = {
var result:String=null
a match {
case 1 => result = "1"
case 2 => result = "2"
case _ => result="100"
}
result
}
println(processData(1))
var a = 1
val valueResult = a match {
case 1 => "1"
case 2 => "2"
case _ => "100"
}
println(valueResult)
}
3.多步骤操作对象时采用this.type构造链式表达式
4.使用Option(Some和None),用None取代Null,Option可以像普通集合一样可以进行map等操作,这可以极大地简化代码
5.使用伴生对象的apply来构造接口或者抽象类或者类的实例,例如Graph
归纳总结:1.Scala的核心力量和解释
2.Scala的黄金定律和解释