文章目录
1 简介
- Scala是一门多范式的编程语言
- Scala运行在Java虚拟机上,并兼容现有的Java程序
- Scala源代码被编译成Java字节码,所以它可以运行在JVM之上,并可以调用现有的Java类库
- Scala函数式编程更适合用于Map/Reduce和大数据模型,它摒弃了数据与状态的计算,着眼于函数本身
- Spark、Flink等都是采用Scala开发的
2 特点
Scala运行在Java虚拟机之上,轻松实现和丰富的Java类库互联互通,既支持面向对象的编程方式,又支持函数式编程,属于静态语言(但是像动态语言一样简介)
总结起来,Scala具有4个核心特点:
- OOP v.s. OFP:面向对象和函数式
- Static Type:静态类型
- Expansibility:扩展性
- Concurrency:并发性
3 函数式编程
1、特点
- 函数是一等公民
- 以表达式为中心
- 无副作用
- 不修改状态
- 引用透明
2、 优势
- 代码简洁,开发速度快
- 接近自然语言,易于理解
- 易于代码管理
- 适合并发编程
- 适用于热开发
3、 总结
纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数只要输入确定,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数的内部变量状态不确定,同样的输入可能得到不同的输出,这种函数是有副作用的
3 为什么要学习Scala
1、API优雅
2、速度快:Scala语言表达能力强,开发速度快;Scala是静态编译的,和JRuby和Groovy比起来速度快很多
3、能融合到Hadoop生态圈:Spark不能够替代Hadoop,但是可以完善Hadoop生态,但是Java做出来的API太丑
4 第一个程序
//1、object表示一个伴生对象,简单理解为一个对象
//2、a就是对象的名字,它底层真正对应的类名是a$
// 对象是a$类型的一个静态对象MODULE$
//3、当我们编写一个object对象时,在底层会生成两个.class文件,分别为a和a$
object a {
//4、def表示一个方法,是一个关键字
//5、main表示方法名称
//6、args: Array[String]表示形参,scala的特点是参数名在前面,类型在后面
//7、Array[String]表示类型是一个数组
//8、: Unit=表示该函数的返回值为空
def main(args: Array[String]): Unit = {
print("hello world!"