Scala之旅 函式詳解

2021-07-05 13:47:08 字數 900 閱讀 2870

1.scala的函式預設都有返回,unit類似c#裡面的void

def funtion(): unit =

以上的無返回值函式可以簡寫和c#類似

def funtion()

2.基於簡潔的追求,scala可以偷懶的地方就 ,如下是帶返回值的3個等價函式

def adda(x:int):int=

def addb(x:int)=x+100 //上面的簡寫

var addc=(x:int)=>x+100 //這個類似於lamda

3.遞迴函式必須宣告其返回值的型別,如下面的階乘

def fac(n:int):int=if(n>1) n*fac(n-1) else 1

4.帶預設引數的函式,和c#類似

def combine(str1:string,str2:string="i",str3:string="love")=str2+" "+str3+" "+str1

5.可變引數函式和c#中的param型別類似,下面是求1-5的和

def sum(args:int*)=

def main(args:array[string])

6.lazy關鍵字,延遲載入 類似於ef框架的延遲查詢。用的時候才會去例項化

lazy val file=source.fromfile("d:\\t1.txt")

for(line<-file.getlines())

如:file若為空,你不使用file的時候是不會報錯的

07 詳解scala函式程式設計

在main函式體外面的原始碼 def test str string unit def main args array string unit 在main函式體裡面的原始碼 def main args array string unit test 張三 def test unit def test1...

scala 遞迴函式呼叫原理詳解

分享今天看到的一句話,與大家共勉。先看做了什麼,再看能做什麼,最後才考慮想做什麼。今天在覆盤scala呼叫遞迴函式,下面用一段 來分析一下 問題引入 猴子吃桃子問題 有一堆桃子,猴子第一天吃了其中的一半,並再多吃了乙個!以後每天猴子都吃其中的一半,然後 再多吃乙個。當到第十天時,想再吃時 還沒吃 發...

scala 主建構函式 Scala 建構函式

scala建構函式 類由類成員 如字段和方法 組成。字段儲存物件的狀態,並使用val或var定義。方法完成物件的計算任務,並使用定義關鍵字def。在scala中,類的整個主體是建構函式。如果建構函式採用零引數,則可以省略引數列表。scala區分用val欄位,var欄位,private val或pri...