Scala简介
Scala源自Java
Scala构建在JVN之上
Scala与Java兼容、互通
Scala的优势
多范式编程:面向对象编程、函数式编程
表达能力强,代码精简
大数据与Scala
Spqrk采用Scala语言设计
提供的API更加优雅
基于JVM的语言更融入Hadoop生态圈
Scala变量与常量
变量
赋值后可以改变,生命周期中可以被多次赋值
var 变量名称:类型=xxx
常量
赋值后不可变,类似于java中的final变量
val 常量名称:类型=xxx
使用类型别名定义变量
type关键字(不常用)
tyoe 类型别名 = 类型
例:type tt = String
val address:tt = "xxx"
等同于 val address:String = "xxx"
Scala关键字列表
Scala数据类型
Scala与Java有着相同的原始数据类型
数据类型 | 描述 |
---|---|
Byte | 8位有符号整数。数值区间-128~127 |
Short | 16位有符号整数。数值区间-32768~32767 |
Int | 32位有符号整数。数值区间-2147483648~2147483647 |
Long | 64位有符号整数。 -9223372036854775808 ~ 9223372036854775807 |
Float | 32位IEEE 754 单精度浮点数 |
Double | 64位IEEE 754 双精度浮点数 |
Char | 16位无符号Unicode字符。区间值为U+0000~U+FFFF |
Boolea | true或false |
String | 等于java.lang.String |
Scala数据类型层次结构
Any:所有类型的超类(顶级类型)
AnyVal:表示值类型的超类
AnyRef:表示引用类型的超类;对应java.lang.Object
Until:表示无值,类似于Java中的void
Nothing:所有类型的子类
Null:表示null或空引用(null是Null类型的唯一实例)
字符串插值
s插值器:允许将变量引用、表达式直接插入字面字符中
val name = "Aythna"
println(s"Hello,$name") //Hello,Aythna
println(s"1+1 = ${1+1}") //1+1 = 2
f插值器
val height = 1.9d
val neme = "lijia"
Println(f"$name%s is $height%2.2f)
raw插值器
s"a\nb" //将输出换行符
raw"a\nb" //输出原始字符
Scala条件控制
if语句
val x = 10
if(x >0) {
println("x大于0")
}
if…else语句
val x = 10
if(x > 10){
print("x大于10")
} else