Scala变量与数据类型
Scala变量与常量
一、变量
赋值后可以改变,生命周期中可以被多次赋值
#语法:var 变量名称:类型=xxx
注:一般无需显示指定类型,Scala编译器会自动推断出类型
使用类型别名定义变量:type关键字
#语法:type 类型别名=类型
二、常量
赋值后不可变,类似与Java中的final变量
#语法:val 常量名称:类型=xxx
三、Scala关键字列表
Scala数据类型
一、数据类型
Scala与Java有着相同的原始数据类型
二、数据类型层次结构
- Any:所有类型的超类(顶级类型)
- AnyVal:表示值类型的超类
- AnyRef:表示引用类型的超类,对应javr.lang.Object
- Unit:表示无值,类似java中的void
- Nothing:所有类型的子类
- Null:表示null或空引用
三、字符串插值
1、s插值器:允许将变量引用、表达式直接插入字面字符中
2、f插值器
注:f 前面数字表示占位符(位数不够可拓展,则空位表示),后面数字表示小数点后位数(位数不够,则0表示)
3、raw插值器
s"a\nb\nc\nd"
//将输出换行符
raw"a\nb\nc\nd"
//输出原始字符
Scala程序控制
条件控制
1、if语句
2、if…else语句
条件语句返回值
Scala任何表达式都有返回值
#注:单行表达式可以省略{}
代码块“{…}”也是表达式,返回值为最后一个表达式结果
#注:多个表达式使用";"分隔
循环控制
1、while循环
#注:Scala中可以不用在语句结束位置显示地使用分号(😉
2、do…while循环
3、for循环
#注:“i to j"或者"i until j"均表示创建一个区间Range
4、中断
#注:by表示步长
- 方法一:
#注:前提需要导入:import scala.util.control.Breaks._
- 方法二
#注:前提需要导入:import scala.util.control.Breaks
#注:需定义:val loop = new Breaks
5、for循环过滤
#注:多个条件时使用分号";"分隔
6、for循环返回值
for 循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。也称for推导式