一、基础语法
分号
Scala跟Java一样,需要在一行代码结束时候用英文分号标识
数据类型
重点说明以下几种数据类型:
具体可参考:https://www.scala-lang.org/files/archive/api/2.12.13/scala/
- Unit:相当于 void ,常用于函数的返回值中。
- Null:只有一个实例 null 表示空引用
- Any:是其他类的父类,类似于 Java 中的 Object。
- AnyRef:是所有引用类型的父类,除了值类型,所有类型都继承自 AnyRef。
- AnyVal:是值类型的父类,值类型共包含9类,数字类型 scala.Double、scala.Float、scala.Long、scala.Int、scala.Char、scala.Short、scala.Byte,非数字类型 scala.Unit、scala.Boolean。
var 和 val
首先先说明一下什么是变量,变量是由变量名+变量值共同组成的,其中变量名在代码层面是为了方便开发人员理解其具体含义方便使用,但是在计算机存储的层面,可以理解为存储在计算机存储介质的哪里(也就是地址)
这里的变量 a 指向了地址 Addr_2 这个地址里保存了值 “abc”。
声明一个变量并初始化,其实就是将值在内存中进行分配然后指向变量名的过程。
可以明确的是:var 和 val 都是可以用来声明变量的,主要的区别就是,var 声明的变量是可变的,val 声明的变量是不可变的,如以下的例子
其中变量 a 被 val 标记,说明 a 指向的对象 就只能是声明时初始化的 5,不能再被改变。变量 b 被 var 标记,说明 b 指向了 声明时初始化的 5,但是今后还可以发生改变。
if - else 语句
基本用法
使用注意事项:
使用 if - else 语句时,需要记得即使当语句块中仅有一条语句时,可以不写大括号,但是为了代码的可读性,必须在每一层 if 语句的语句块里,写上大括号
循环语句
基本需要明确:循环开始于哪里?每次循环步长是多少?循环终止于哪里?
-
while 循环
以上是一个标准的 while 循环。 -
do … while 循环
以上是一个 do…while 循环,必执行一次 do 语句块内的语句,大家可以猜测下以上程序的输出是什么 -
for 循环
基本用法:使用 to 或者 until:
to 和 until 都有两种模式,其中的区别是,to 循环 最终包含了 end,而 until 循环 是不包含 end 的。
注意:当使用小数作为 start end step 的时候,需要使用 BigDecimal 类型,默认的 Double 类型因为存在精度问题不准确。
- 高级用法:
循环过滤:在 for 循环中加入 if 语句,在循环遍历的时候,实现过滤器的语法,如:
使用 yield 将 for 循环的返回值作为新的变量存储下来,如:
二、总结
以上是Scala常见的基础语法,下来学习一下Scala中的函数及隐式转换