Scala基礎語法三

2021-08-28 16:54:56 字數 1558 閱讀 3811

1.方法的定義與呼叫

1)方法的定義與呼叫

def  方法名(引數:引數型別,。。。。) :方法返回值型別 =

當然上邊的方法定義的方式中有許多是可以省略的,例如:

省略方法的返回值型別

注意:    方法的返回值型別可以不寫,編譯器可以自動推斷出來,但是對於遞迴函式,必須指定返回

省略傳入方法中的引數 

注意:    如上圖中的例子所示,省略了引數之後可以寫括號也可以不寫括號,但是定義方法時寫了括號,在呼叫該方法時寫不寫括號都可以呼叫,而在定義方法時沒有寫括號,則在呼叫該方法時就不能寫括號,否則會報錯

2)方法轉變為函式

方法名 _

解讀:    (int,int,int)=>int=

左邊是該函式的引數列表,中間是該函式的返回值型別,右邊該函式有幾個引數就是function幾

注意:      方法名與_之間是有空格的

2.函式的定義與呼叫

函式定義方式一:

呼叫: f1(2) , 其中 f1 為函式的引用, 也可以叫做函式名, function1 表示乙個引數的函式

函式定義方式二:

沒有任何引數的函式,函式的返回值為 int 型別

var ys:()=>int=()=>1
3.傳值呼叫與傳名呼叫首先來一段**示例:

object numtest 

def shuqian =

def test(x:int) = 元")

} def test1(x: => int) = 元")

} def main(args: array[string]): unit =

}

輸出結果:

上述**中test方法中的呼叫就是傳值呼叫,test1方法的呼叫就是傳名呼叫,傳值呼叫在呼叫前就是乙個固定的值,呼叫的時候必須要傳入乙個值,而test1則是傳入乙個函式,這裡的shuqian雖然是乙個方法,但是傳入的時候已經隱式的轉變為函式了

scala基礎語法

一 變數定義 1 val 定義的變數值不可以修改 2 var 定義的變數值可以修改 二 一些變數型別 1 unit 表示不返回任何結果方法的結果型別,相當於void 2 null null 空引用 3 nothing 任何其他類的子型別 4 any 所有其他類的父類 5 anyref 所有引用類的基...

Scala基礎 2 基礎語法

val x 6 if x 0 elsevar i 9 while i 0 val x 0 do while i 5 for 變數 表示式 語句塊 for i 1 to 5 其中 變數 表示式 被稱為 生成器 generator for i 1 to 5 if i 2 0 for i 1 to 5 j...

Scala基礎語法五

1.柯里化 柯里化 currying 指的是將原來接受兩個引數的函式變成新的接受乙個引數的函式的過程,新的函式返回乙個以原有第二個引數為引數的函式 示例 定義乙個方法 def add x int,y int x y呼叫這個方法應該是add 1,2 現在將這個方法變形 def add x int y ...