目录
一、scala简介
1.Scala源自Java
- Scala构建在JVM之上
- Scala与Java兼容、互通
2.Scala的优势
- 多范式编程:面向对象编程、函数式编程
- 表达能力强,代码精简
3.大数据与Scala
- Spark采用Scala语言设计
- 提供的API更加优雅
- 基于JVM的语言更融入Hadoop生态圈
二、Scala概述
- 面向对象特性
1.每个值都是对象
2.对象的数据类型和行为由类(Class)和特征(Trait,类似于interface)描述
3.利用特征实现混入式多重继承
- 函数式编程
1.每个函数都是一个值
2.支持高阶函数、柯里化(currying)、样例类(case class)及模式匹配……
- Scala是静态的,小众型的语言
- 扩展性:隐式类、字符串插值
1.Scala的常量与变量
常量:val
赋值后不可以改变,类似于Java中的final变量
- val 常量名称:类型=xxx
val a :int=10
变量:var
赋值后可以改变,生命周期中可以被多次赋值
- var 变量名称:类型=xxx
var b:string="luoxin"
b="lijia"
注意:一般无需显示指定类型(可写可不写),Scala编译器会自动推断出类型
2.scala关键字列表
3.Scala数据类型
Scala的数据类型跟Java类似
Scala数据类型层次结构
- any:所有数据类型的父类
- anyrval:所有数值类型的父类
- anyref:所有引用值类型的父类
- unit:表示无值,相当于java的void
- nothing:所有类型的子类,无权力
- null:表示空引用或null,比nothing有权力
4.字符串插值
S插值器:允许将变量引用、表达式直接插入字面字符中
会把$后的值完整的输出,可以当作变量看待
val name="James"
println(s"Hello,$name") //Hello,James
println(s"1+1=${1+1}") //1+1=2
f值插值器:只会输出选取的部分
var a=5.2364
println(f"$a%2.3f")
输出结果为5.236
println