Scala学习--基础语法

一、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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章