Scala基礎 函式

2021-09-07 20:38:50 字數 1148 閱讀 1727

/*

* 函式定義

* def 函式名(引數名1: 引數型別1, 引數名2: 引數型別2) : 返回型別 =

* 顯式定義了返回型別,才可以return

* */

def play1 =1

//標準形式,返回任一型別

def play2(a1:int,a2:int): unit =

println(play2(10,20))

//返回值為int型別

def play3(a1:int,a2:int)=

println(play3(10,20))

//適用於只有乙個表示式

def play4(a1:int,a2:int) = a1 + a2

println(play4(10,20))

//指定引數預設值

def play5(a1:int,a2:int=10) = a1 + a2

println(play5(10))

//變長引數

def play6(args:int*) =

println()

}play6(1,2,3,4,5,6,7)

//遞迴,必須定義返回型別

def fac(n:int):int=

else

n*fac(n-1)

}println(fac(3))

/*

* 匿名函式

* ()=>0是匿名函式

* 將函式值賦值給變數play7

* 沒有名字,需要賦值給乙個變數,否則沒有意義

* */

val play7 =()=>0

//輸出,function0表示該函式不能傳入引數

println(play7)

//輸出0

println(play7())

/** 匿名函式右邊的函式體應該使用=>符號來指定

* 匿名函式的函式體,可以是包含多行**的**塊

* 函式的型別,為引數個數的型別:function0為不能傳入引數,function1代表傳入乙個引數

** */

val play8 =(a1:int,a2:int)=>

println(play8(10,10))

scala基礎3 函式

常規函式 def f x int int 無返回值,使用unit def f unit unit和其他型別都可以省略,scala可以執行判斷函式的返回型別 def f f def f print f 無返回值,可以省略,unit不能寫 def f 無參函式 def f println hello f...

Scala入門系列(二) Scala函式基礎介紹

2 匿名函式 3 高階函式 4 函式巢狀 5 柯里化 6 隱式引數 7 命名引數 8 引數預設值 函式是scala的核心 def 函式名 引數列表 返回值 列1 def square x int int 列2 def sayhello x string unit 函式呼叫 square 10 say...

Scala基礎(3) 函式高階

函式可以沒有名稱,可以直接賦值。如果函式有多行表示式組成,就加上大括號。這一點對匿名函式同樣適用。scala val addone x int x 1 addone int int scala addone 1 res4 int 2注意到scala中一切都是物件。所以addone是乙個物件。同時它又...