什么是Scala
Object-Oriented Meets Functional
Have the best of both worlds. Construct elegant class hierarchies for maximum code reuse and
extensibility, implement their behavior using higher-order functions. Or anything in-between.
Object-Oriented Meets Functional 面向对象遇上面向函数,所以说Scala即可以面向对象也可以面向函数的编程语言。Scala被设计出来就是要面向对象编程和函数式编程的各种特性,它是可伸缩的语言,是一种多范式的编程语言。
Scala与Java的区别
①Scala的运行时在JVM上
②Scala与Java都是静态语言
③Scala与Java语法相近,只是规范不同
④Scala可以使用Java类库,既可以使用现有的框架及代码
⑤Scala既支持面向对象也支持面向函数,所以开发人员使用Scala编程时可以逐步运用函数式编程思想
为什么学习Scala
第一,基于编程语言自身:
1、优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API 是否 优雅直接影响用户体验。
2、 速度快:Scala 语言表达能力强,一行代码抵得上 Java 多行,开发速度快;Scala 是静态 编译的,所以和 JRuby,Groovy 比起来速度会快很多。
3、 能融合到 Hadoop 生态圈:Hadoop 现在是大数据事实标准,Spark 的出现并不是要取代 Hadoop,而是要完善 Hadoop 生态。JVM 语言大部分可能会想到 Java,但 Java 做出来的 API 太丑,或者想实现一个优雅的 API 太费劲。
第二,基于活跃度:
1、作为流行的开源大数据内存计算引擎 Spark 的源码编程语言–Spark 有着良好的性能优势
2、Coursera把Scala作为服务器语言使用。
3、Kafka 核心也是Scala 实现的。
什么是函数式语言
1、函数式程序由函数构成
2、函数式总是有返回值 3、函数对于相同的输入总是返回相同的输出
4、函数式程序禁止改变状态或者修改数据。一旦你设定了一个值,就无需再管它了