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

土豆拍死馬鈴薯發表於2017-10-05

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("通常用來釋放資源")
  }
}

相關文章