Scala源自Java
Scala构建在JVM之上
Scala与Java兼容、互通
Scala的优势
多范式编程:面向对象编程、函数式编程
表达能力强,代码精简
大数据与Scala
Spark采用Scala语言设计
提供的API更加优雅
基于JVM的语言更融入Hadoop生态圈
Scala概述
面向对象特性
每个值都是对象
对象的数据类型和行为由类(Class)和特征(Trait,类似于interface)描述
利用特征实现混入式多重继承
函数式编程
每个函数都是一个值
支持高阶函数、柯里化(currying)、样例类(case class)及模式匹配……
Scala是静态类型语言
扩展性:隐式类、字符串插值
Scala变量与常量
变量
赋值后可以改变,生命周期中可以被多次赋值
常量
赋值后不可变,类似于Java中的final变量
type关键字
Scala数据类型
Scala与Java有着相同的原始数据类型
Scala数据类型层次结构
Any:所有类型的超类(顶级类型)
AnyVal:表示值类型的超类
AnyRef:表示引用类型的超类,对应java.lang.Object
Unit:表示无值,类似Java中的void
Nothing:所有类型的子类
Null:表示null或空引用
null是Null类型的唯一实例