变量声明
val a = 5//定义常量,无法改变内容,可以指定类型(也可以自动推断)
var b = 3//变量
val c:String = "hello"
val x,y = 1//将x,y设为1
val i = -1//注意赋值负数时,负数和等号间加空格
常用数值类型
Byte,Char,Short,Int,Long,Float,Double
RichInt,RichDouble,RichChar
BigInt,BigDecimal
Boolean
调用方法
- 在Scala中+-*/等操作符实际上是方法。
- 不带参数的Scala方法通常不适用圆括号
控制结构
条件表达式
if (x > 0) 1 else -1
val s = if (x > 0) 1 else -1 //可以将表达式的值赋给变量
var y = -1
var r = if (y>0) 1//缺少else部分时,会引入'()',即等于
//var r = if (y>0) 1 else ()
Scala中每个表达式都有一个类型
if (x > 0) 1 else -1 //表达式类型是Int,因为两个分支都是Int
if (x > 0) "positive" else -1 //表达式类型是Any,为两个分支类型的公共超类型
循环
while (n > 0) {
r = r * n
n -=1
}
for(i <- 1 to n)
r = r * i
块表达式
‘{ }’中的语句为块语句,包含一系列表达式,块中最后一个表达式的值就是块的值。
赋值动作的值Unit类型,因此以赋值语句结束的块语句的值是’{}’。
x = y = 1//结果为x={}
映射
创建
//创建不可变Map
val b = Map(("qvq",1),("ovo",2))//or val b=Map("qvq"->1,"ovo"->2)
//创建可变映射
val c = scala.collection.mutable.Map(("qvq",1),("ovo",2))
//创建空映射
val s = new scala.collection.mutable.HashMap[String,Int]
获取值
val x = b("qvq")
//检查映射是否有某个键
val y = if (b.contains("dad")) b("dad") else 0
val y = b.getOrElse("dad", 0)
//get返回Option对象,要么是Some,要么是None
val y = b.get("dad")