1. 程式人生 > >Scala學習 1.1 Scala基礎與語法入門實戰

Scala學習 1.1 Scala基礎與語法入門實戰

1.1.1 Scala基本資料型別

Scala包括8種常用基本資料型別:Byte Char Short Int Long Float Double Boolean 

1.1.2 Scala變數宣告

val 型變數定義後不可以重新賦值,相當於Java中final修飾的變數

var型變數定義後可以重新賦值

1.1.3 算術操作符

算術運算子:+ - * / %

關係運算符:==    !=    >    <    >=    <=

位運算子:& | ^

賦值運算子:=    +=    -=    *=    /=    %=    <<=(左移)  >>=(右移)  &=     ^=    |=

1.1.4 條件語句

object Scala_study {
  def main(args: Array[String]): Unit = {
    val i = 10
    val result = if(i > 5) i else 3
    println(result)
  }
}

1.1.5 迴圈   在Scala中沒有break和continue兩個關鍵字,continue可以通過if語句來判斷是否要向下執行,而break在scala中有特殊的實現(是一個方法)

(1)for迴圈

object Scala_study {
  def main(args: Array[String
]): Unit = { //1. 使用for迴圈打印出110 注意:to包含尾部 for(i <- 1 to 10) print(i + " ") println() //2. 使用for迴圈打印出19 注意:until包含尾部 for(i <- 1 until 10) print(i + " ") println() //3. for迴圈中使用守衛 for(i <- 1 to 10 if i % 2 == 0) print(i + " ") println() //4.1 多個過濾條件間可以使用分號隔開
for(i <- 1 to 10 if i % 2 == 0;if i != 2) print(i + " ") println() //4.2 多個過濾條件間可以使用&& for(i <- 1 to 10 if (i % 2 == 0 && i !=2)) print(i + " ") println() //4.3 多個過濾條件間可以使用&& for(i <- 1 to 10 if i % 2 == 0 && i !=2) print(i + " ") println() //5 迴圈巢狀 for(i <- 1 to 10; j <- 1 to 5) print(i * j + " ") println() //6 使用yield關鍵字返回一個新集合 val v1 = for(i <- 1 to 5) yield i v1.foreach(x=>print(x + " ")) println() } }

(2)while迴圈

var i = 0
while(i <= 5 )
    {
      i += 1
print(i + " ")
    }
  println()
  
  

  import scala.util.control.Breaks._
  import scala.util.Random
  breakable{
    while(true)
      {
        val r = new Random()
        val i = r.nextInt(10)
        println("i==",i)
        if(i==5)
          break
      }
  }
}

(3)do-while迴圈

var count = 4
do {
  println(count)
  count-=1
}while(count > 0 )

1.1.6 異常控制

(1)丟擲異常關鍵字throw

(2)捕獲異常

try{
    val file = Source.fromFile("D://chenjie.txt")
    val lines = file.getLines()
    for(content <- lines){
      println(content)
    }
  }
  catch {
    case ex : FileNotFoundException => println("檔案不存在")
    case ex : Exception => println(ex)
  }
  finally {
    println("通常用來釋放資源")
  }
}