黑猴子的家 Scala 函式變種

2021-09-24 00:27:36 字數 1257 閱讀 1422

1、變種1,乙個引數

//第一種  乙個引數

def pla1(a1:string): unit =

2、變種2,兩個引數

//第二種 兩個引數

def pla2(a1:string,a2:string): unit =

pla2(a2 = "hei",a1 = "haha")

3、變種3,引數預設值

//第三種 引數預設值

def pla3(a1:string,a2:string="heihei"): unit =

4、變種4,無限變長引數

//第四種 無限引數

def pla4(a1:string,a2:string*): unit =

5、變種5,省略返回型別

//第五種 省略返回型別,可以有返回值,

// 自動推斷型別,但是不能顯示的使用return

def pla5(a1:string)=

6、變種6 指定返回型別

//第六種  顯示返回型別,這裡可以使用return,也可以不使用

// scala 建議不用寫

// 沒有寫返回型別的時候,不能使用return關鍵字

// 指定了返回型別後,可以使用return,也可以不使用return

def pla6(a1:string): int =

7、變種7,省略等於號 –> 方法 + 匿名函式

//第七種 省略等於號

//這裡沒有顯示返回型別,但是可以使用return關鍵字了

//因為這是乙個方法,而不是乙個函式

//有等號是函式

//pla7 是乙個 方法,不是乙個函式,函式是一定要寫上等於號的

def pla7(a1:string)

//那麼函式什麼時候可以不寫等於號呢?? 匿名函式

(a1:string) => println(a1.length)

//f1 是變數名, 這個匿名函式沒有名字,這個函式賦值給乙個變數而已,函式也是物件

//我們可以通過這個變數名,來呼叫這個函式

val f1 = (a1:string) => println(a1.length)

f1("haha")

//函式還可以給函式傳值,函式套函式,函式柯里化,這些就屬於scala函式的高階函式

黑猴子的家 Scala 佇列 Queue

佇列資料訪問,符合先進先出策略 1 佇列的建立 import root scala.collection.mutable import scala.collection.mutable val q1 new mutable.queue int println q1 2 佇列元素的追加 q1 1 pr...

黑猴子的家 Scala 密封類

如果想讓case類的所有子類都必須在申明的該類的相同的檔案中定義,可以將樣例類的通用超類宣告為sealed,叫做密封類,密封就是外部使用者不能在其他檔案中定義子類。不能被繼承只能自己用 sealed abstract class trafficlightcolor case object red e...

黑猴子的家 Scala 引數(型別)推斷

傳入函式表示式 highorderfunction1 x double 3 x 引數推斷省去型別資訊 highorderfunction1 x 3 x 單個引數可以省去括號 highorderfunction1 x 3 x 如果變數旨在 右邊只出現一次,可以用 來代替 highorderfuncti...