Scala基本数据类型、输入输出、控制结构
基本数据类型与字面量
Scala的数据类型包括:Byte、Char、Short、Int、Long、Float、Double和Boolean(注意首字母大写)
和Java不同的是,在Scala中,这些类型都是“类”,并且都是包scala的成员,比如,Int的全名是scala.Int。对于字符串,Scala用java.lang.String类来表示字符串。

变量

var与val是指变量的指向是不是可变的。
操作符
操作符
算术运算符:+、-、* 、/、%;
关系运算符:>、<、==、!=、>=、<=
逻辑运算符:&&、||、!;
位运算符:&、|、^、~;
赋值运算符:=及其与其它运算符结合的扩展赋值运算符,例如+=、%=
操作符优先级
算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
其他
在Scala中操作符就是函数,比如: 5+3 的本质是 5.+(3)
只有一个参数的函数,都可以使用中缀表达式的方式调用;
比如: 输出[1,5)之间的正整数可以使用函数 1.until(5) ,中缀表达式形式可写为: 1 until 5 。
富包装类
对于基本数据类型,Scala提供了除上述操作符外的方法,这些方法是在富包装类中定义。Int-->RichInt, String--> RichString, 这些类位于scala.runtime包中。基本数据类型可以自动通过隐式转换直接调用富包装类中的方法。
输入输出
控制台输入输出
输入
从控制台读入数据方法:readInt、readDouble、readByte、readShort、readFloat、readLong、readChar、 readBoolean及readLine,分别对应9种基本数据类型,其中前8种方法没有参数,readLine可以不提供参数,也可以带一个字符串参数的提示。
所有这些函数都属于对象scala.io.StdIn的方法,使用前必须导入,或者直接用全称进行调用。
1 | scala> import scala.io.StdIn._ |
输出
1 | scala> print(name) |
文件输入输出
输出
1 | import java.io.PrintWriter |
输入
1 | scala> import scala.io.Source |
控制结构
判断
与Java中的if循环语法基本一致。
常规语法
1 | val score = readInt |
if表达式赋值
不同的是,可以将表达式的值赋值给一个变量。
1 | val score = readInt |
如果返回值的类型不确定,可以去掉类型声明String。
测试
1 | 55 |
循环
while循环
while
1 | var i = 0 |
do while
1 | var i = 0 |
for循环
常规遍历
1 | val range = 1 until 10 by 2 |
遍历中加过滤条件
1 | val range = 1 until 10 |
多重遍历
| 0 | 1 | 2 | |
|---|---|---|---|
| 0 | 1 |
2 |
3 |
| 1 | 4 |
5 |
6 |
1 | var x = 0 |
for集合推导式
语法
for (变量 <- 表达式) yield {语句块}
1 | val subset = for(i <- 1 until 10 if i%2==0) yield {i} |
异常处理
1 | try { |
循环控制
Scala中没有提供break和continue关键字。
在Scala中对循环进行控制,需要使用scala.util.control.Breaks类中的两个方法breakable和break。
1 | import util.control.Breaks._ |
跳出循环
相当于Java中的break
1 | breakable{ |
跳过后续操作,继续循环
相当于Java中的continue
1 | for (i <- 1 to 5){ |