可變變量(var):賦值後能夠改變,生命週期中能夠被屢次賦值。語法:var 變量名稱: 類型 = xxx
shell
不可變變量(val):賦值後不可變,相似於 Java 中的 final 變量,值一旦初始化了就不能再改變。語法:val 變量名稱: 類型 = xxx
編程
大多數狀況下推薦使用 val 來聲明變量,由於能夠防止變量的值被錯誤修改,提升程序的健壯性和安全性。安全
Byte // 8 位有符號值,範圍從 -128 至 127 Short // 16 位有符號值,範圍從 -32768 至 32767 Int // 32 位有符號值,範圍從 -2147483648至 2147483647 Long // 64 位有符號值,範圍從 -9223372036854775808 至 9223372036854775807 Float // 32 位IEEE 754 單精度浮點值 Double // 64 位IEEE 754 雙精度浮點值 Char // 16 位無符號 Unicode 字符。範圍從 U+0000 到 U+FFFF String //一個 Char 類型序列 Boolean //文字值 true 或文字值 false Unit //表示無值,和其餘語言中 void 等同。用做不返回任何結果的方法的結果類型。Unit 只有一個實例值,寫成() Null // null 或空引用 Nothing // Nothing 類型在 Scala 的類層級的最低端:它是任何其餘類型的子類型 Any // Any 是全部其餘類的超類 AnyRef // AnyRef 類是 Scala 裏全部的引用類(reference class)的基類
// 強制轉換成Double類型 var i = 10.asInstanceOf[Double]
// 判斷是否爲Int類型 val b = 10.isInstanceOf[Int]
在 Scala 中,if表達式是有值的,能夠將 if 表達式賦予一個變量. 例如:val isAdult = if(age > 18) 1 else 0
scala
當 if 和 else 子句的值類型不一樣時,此時 Scala 會自動進行推斷,取兩個類型的公共父類型。 例如:if (age > 18) "adult" else 0,此時 if 和 else 的值分別是 String 和 Int ,則表達式的值是 Any , Any 是 String 和 Int 的公共父類型。code
在 shell 端能夠使用 :paste
進入多行模式,寫完代碼以後按 ctrl+D
退出多行模式。生命週期
默認狀況下:Scala 不須要語句終結符,默認將每一行做爲一個語句,若是要實現一行放多條語句,則可以使用下面的方式來實現 示例:var a, b, c = 0; if(a < b) {b = b + 1; c = c + 1}
或採用花括號的方式圖片
if (a < b) { b = b + 1 c = c + 1 }
指的是 {} 中的值,其中能夠包含多條語句,最後一個語句的值就是表達式的返回值。it
// 當變量 n 大於 0 的時候,輸出並減一,不然,跳出循環 var n = 10 while(n > 0) { println(n) n -= 1 }
var n = 10 for (i <- 1 to n) println(i) for (c <- "Hello World") println(c)
//該表達式的值達不到上限 for (i <- 1 until n) println(i)
import scala.until.control.Breaks._ breakable { var n = 10 for(c <- "Hello World") { if(n == 5) break; print(c) n -= 1 } }
// 九九乘法表 for (i <- 1 to 9; j <- 1 to 9){ if(j == 9){ println(i * j) } else { print(i * j + " ") } }
// 取出偶數 for (i <- 1 to 100 if i % 2 == 0){ println(i) }
// 將輸出的值生成一個集合 for (i <- 1 to 10) yield i
歡迎關注,本號將持續分享本人在編程路上的各類見聞。for循環