/*
* 函式定義
* 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是乙個物件。同時它又...