1. 程式人生 > >scala (1) 基礎

scala (1) 基礎

基本資料型別

Scala 和 Java 一樣,有 7 種數值型別 Byte、Char、Short、Int、Long、Float 和 Double(無包 裝型別)和 Boolean、Unit 型別.

注意Unit表示無值,和其他語言中的void一樣 

val 和 var 區別:前者不可變,相當於final修飾,var 可以變

4.6 條件表示式

/** * Scala if 條件表示式 */

object ScalaIf extends App{

//if 語句的使用 val faceValue: Int = 99 val res1 = if(faceValue > 90 ) "帥的不要不要的" else "癟犢子玩意兒" println(res1)

// 8 > 8 不成立, 且程式碼沒有 else 分支, res2 是什麼呢 val i = 8 val res2 = if (i > 8) i println(res2)

val res3 = if (i > 8) i else "前面是整型這裡是字串, 那個 res3 是個啥?" println(res3)

// if ... else if ... else 程式碼較多時可以使用程式碼塊{} val score = 76 val res4 = {

if(score > 60 && score < 70) "及格" else if(score >=70 && score < 80) "良好" else "優秀"

} }

4.7 迴圈語句/yeild 關鍵字

在 scala 中有 for 迴圈和 while 迴圈,

用 for 迴圈比較多 for 迴圈語法結構:for (i <- 表示式/陣列/集合)

/** * Scala for迴圈 */

object ScalaFor extends App {

// 定義個數組, 元素為1 到 6 val array = Array(1, 2, 3, 4, 5, 6) // 遍歷列印陣列中的每個元素 for(ele <- array) { // 類似 Java 中的增強 for

println(ele)
   }

// 通過角標獲取陣列中的元素 // 定義一個 0 到 5 的角標範圍 for(i <- 0 to 5) { // 0 to 5 => 會生成一個範圍集合 Range(0,1,2,3,4,5)

       println(array(i))
   }

for(i <- 0 until 6) { // 0 until 6 => 會生成一個範圍集合 Range(0,1,2,3,4,5) println(array(i))

}

// to 和 until 的區別就是 to 包含為前後都為閉區間, until 為前閉後開區間

// 列印陣列中的偶數元素 for(e <- array if e % 2 == 0) { // for 表示式中可以增加守衛

println(e) }

// 觀察下面程式碼輸出結果 for(i <- 1 to 3; j <- 1 to 3 if i != j) {

println((10 * i + j) + " ") }

for(e <- array if e % 2 == 0) yeild e )

scala運算子

Scala 中的+ - * / %等操作符的作用與 Java 一樣,位操作符 & | ^ >> <<也一樣。只是有 一點特別的:這些操作符實際上是方法。例如: a+b 是如下方法呼叫的簡寫:

a.+(b) a 方法 b 可以寫成 a.方法(b)