一、Hello, world
object Hello extends App {
println("Hello, world")
}
1、兩種類型的變量
Scala有兩種類型的變量:
val是一個不可變的變量(例如final在Java中),應首選
var 創建一個可變變量,並且僅在有特定原因使用它時才使用
例子:
val x = 1 //immutable
var y = 0 //mutable
2、聲明變量類型
在Scala中,通常創建變量時無需聲明其類型:
val x = 1
val s = "a string"
val p = new Person("Regina")
執行此操作時,Scala通常可以爲您推斷數據類型,如以下REPL示例所示:
scala> val x = 1
val x: Int = 1
scala> val s = "a string"
val s: String = a string
二、控制結構
1、Scala控制結構
if (test1) {
doA()
} else if (test2) {
doB()
} else if (test3) {
doC()
} else {
doD()
}
2、三元運算符:
val x = if (a < b) a else b
3、匹配表達式
Scala有一個match表達式,其最基本的用法類似於Java switch語句:
val result = i match {
case 1 => "one"
case 2 => "two"
case _ => "not 1 or 2"
}
object Hello extends App {
val i = 2
val result = i match {
case 1 => "one"
case 2 => println("two")
case _ => "not 1 or 2"
}
}
two
這是match被用作方法主體並針對許多不同類型進行匹配的示例:
def getClassAsString(x: Any):String = x match {
case s: String => s + " is a String"
case i: Int => "Int"
case f: Float => "Float"
case l: List[_] => "List"
case p: Person => "Person"
case _ => "Unknown"
}
object for_x extends App {
class Person{}
def getClassAsString(x: Any):String = x match {
case s: String => s + " is a String"
case i: Int => "Int"
case f: Float => "Float"
case l: List[_] => "List"
case p: Person => "Person"
case _ => "Unknown"
}
val a = new Person
print(getClassAsString(a))
}
Person
4、for循環和表達式
for (i <- 0 to 5) println(i)
0
1
2
3
4
5
Process finished with exit code 0
5、while循環
while(condition) {
statement(a)
statement(b)
}
// do-while
do {
statement(a)
statement(b)
}
while(condition)