scala入门
Scala概述
面向对象特性
每个值都是对象
对象的数据类型和行为由类(Class)和特征(Trait,类似于interface)描述
利用特征实现混入式多重继承
函数式编程
每个函数都是一个值
支持高阶函数、柯里化(currying)、样例类(case class)及模式匹配……
Scala是静态类型语言
扩展性:隐式类、字符串插值
Scala变量与常量
变量
赋值后可以改变,生命周期中可以被多次赋值
var 变量名称:类型=xxx //一般无需显示指定类型,Scala编译器会自动推断出类型
常量
赋值后不可变,类似于Java中的final变量
val 常量名称:类型=xxx
Scala关键字列表
Scala数据类型
Scala与Java有着相同的原始数据类型
Scala数据类型层次结构
Any:所有类型的超类(顶级类型)
AnyVal:表示值类型的超类
AnyRef:表示引用类型的超类,对应java.lang.Object
Unit:表示无值,类似Java中的void
Nothing:所有类型的子类
Null:表示null或空引用
字符串插值
s插值器:允许将变量引用、表达式直接插入字面字符中
val name="James"
println(s"Hello,$name") //Hello,James
println(s"1+1=${1+1}") //1+1=2
f插值器
val height=1.9d
val name="James"
println(f"$name%s is $height%2.2f meters tall")
raw插值器
s"a\nb" //将输出换行符
raw"a\nb" //输出原始字符