這兩周專案提測與上線,好久沒寫scala的筆記了
scala中幾乎構造的所有語法結構都有值
1、scala中if表示式也是有值的
2、塊中最後乙個達式的值就是該塊的值
3、scala中的unit等價於c/c++語言中常用的void
4、scala中每個表示式都有乙個型別
5、if (a>0)
"positive" else -1 // 該語句是兩個分支型別的公告超型別(any)
6、if (b>0) 1 等價於 if (b>0) 1 else () //這裡把()當做無有用值的佔位符。
7、scala沒有switch語句,而是用模式匹配機制
8、repl同意時間是只能解析一行**,可以用黏貼模式(冒號:)把**黏貼進去,鍵入ctrl+d,repl會把**看做乙個整體
9、運算子放在語句末尾表示這裡並不是語句的結束,也可以用
16、val s = sum(1 to 100:_*) // 用 :_* 將表示式轉化成乙個seq
17、如果乙個函式不是遞迴函式,則無需給出返回型別,遞迴函式一定要有返回函式
18、如果函式體包含在花括號中,但沒有前面的 = 號 ,則返回型別為unit,這樣的函式成為過程(procedure)例如
def box (s:string) 等價於 def box(s:string) :unit =
19、當val宣告為lazy時,其初始化被推遲,直到我們首次對它取值
20、懶值主要應用於開銷較大的初始化,其本身也有開銷,因為每次訪問懶值,都有乙個方法被呼叫,而這個方法將以執行緒安全的方式檢查該值是否被初始化。
《快學Scala》 控制結構和函式
if x 0 1 else 1 上述表示式的值是1或 1,具體是哪乙個取決於x的值。你可以將if else的值賦值給變數 val s if x 0 1 else 1 這與如下語句的效果一致 if x 0 s 1 else s 1 以上兩個的區別在於 第乙個可以用來初始化val 第二種s必須是var。...
Scala學習筆記 控制結構和函式 2
7.函式 scala除了方法外還支援函式。方法對物件進行操作,函式不是。要定義函式,需要給出函式名 引數和函式體,例如 def abs x double if x 0 x else x 只要函式不是遞迴的,一般不需要指定返回型別。scala編譯器可以通過 符號右側的表示式的型別推斷出返回型別 如果函...
Scala基礎 函式
函式定義 def 函式名 引數名1 引數型別1,引數名2 引數型別2 返回型別 顯式定義了返回型別,才可以return def play1 1 標準形式,返回任一型別 def play2 a1 int,a2 int unit println play2 10,20 返回值為int型別 def pla...