最近在学习Scala,总结了一下比较基础的知识。
一、Scala简介
1、Scalable Language,是一门多范式的编程语言,是一种纯面向对象的语言,每个值都是对象。
2、特点:①Scalable编程语言②纯面向对象语言③函数式语言④无缝的Java互操作
3、Scala -> 函数式编程 ->只有纯函数来编写程序
①纯函数(Pure Function)
函数的纯粹性,没有副作用(Side Effect)
ps:副作用指的是状态的变化->(1)修改全局变量(2)抛出异常(3)IO读写(4)调用有副作用的函数
②引用透明性(Referential Transparency)
对于相同的输入,总是得到相同的输出
如果f(x)的参数x和函数体都是引用透明的,那么f是纯函数
③不变性(Immutability)
为了获得引用透明性,任何值都不能变化
④函数是一等公民
⑤表达式求值策略:(1)严格求值(2)非严格求值(3)惰性求值
4、优点
①生产效率高
②易于推理
③并行编程