scala基礎 控制結構和函式

2021-07-29 12:40:12 字數 813 閱讀 2914

這兩周專案提測與上線,好久沒寫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...