函式的形參列表可以是多個,如果函式沒有形參,呼叫時可以不帶()
形參列表和返回值列表的資料型別可以是值型別和引用型別
scala中的函式可以根據函式體最後一行**自行推斷函式返回值型別。那麼在這種情況下,return關鍵字可以省略object details01
def test01(n1:int,tiger:tiger): tiger =
}class tiger
def getsum (n1: int, n2: int): int =
因為scala可以自行推斷,所以在省略return關鍵字的場合,返回值型別也可以省略
def getsum (n1: int, n2: int) =
如果函式明確使用 return 關鍵字,那麼函式返回就不能使用自行推斷了,這時要明確寫成:返回型別=,當然如果你什麼都不寫,即使有return返回值為()如果函式明確宣告無返回值(宣告unit),那麼函式體中即使使用return關鍵字也不會有返回值object details02
//如果寫了return ,返回值型別就不能省略
def getsum(n1: int, n2: int): int =
//如果返回值這裡什麼什麼都沒有寫,即表示該函式沒有返回值
//這時return無效
def getsum2(n1: int, n2: int)
//如果函式明確宣告無返回值(宣告unit),那麼函式體中即使使用return關鍵字也不會有返回值
def getsum3(n1: int, n2: int): unit =
}
如果明確函式無返回值或不確定返回值型別,那麼返回值型別可以省略(或宣告為any)//如果函式明確宣告無返回值(宣告unit),那麼函式體中即使使用 return 關鍵字也不會有返回值
def getsum3(n1: int, n2: int): unit =
scala語法中任何的語法結構都可以巢狀其他語法結構(靈活),即:函式中可以再宣告/定義函式,類中可以再宣告類,方法中可以再宣告/定義方法
scala函式的形參,在宣告引數時,直接賦初始值(預設值),這時呼叫函式時,如果沒有指定實參,則會使用預設值。如果指定了實參,則實參會覆蓋預設值。object details03
println("ok~~")
def sayok(): unit =
}} def sayok(): unit =
}
如果函式存在多個引數,每乙個引數都可以設定預設值,那麼這個時候,傳遞的引數到底是覆蓋預設值,還是賦值給沒有預設值的引數,就不確定了(預設按照宣告順序[從左到右])。在這種情況下,可以採用帶名引數。object details04
//name形參的預設值jack
def sayok(name : string = "jack"): string =
}
遞迴函式未執行之前是無法推斷出來結果型別,在使用時必須有明確的返回值型別object detailparameter05
def mysqlcon(add:string = "localhost",port : int = 3306,
user: string = "root", pwd : string = "root"): unit =
def f6 ( p1 : string = "v1", p2 : string )
}
def f8(n: int) =
scala函式支援可變引數
基本語法
使用的注意事項//支援о到多個引數
def sum(args: int*): int = {}
//支援1到多個引數
def sum(n1: int, args: int*): int = {}
應用案例:
將函式的返回型別為unit的函式稱之為過程(procedure),如果明確函式沒有返回值,那麼等號可以省略object varparameters
def sum(n1: int, args: int*): int =
sum} //可變引數需要放在最後
// def sum2(args: int*,n1: int): int =
def test(): unit =
}
// f10沒有返回值,可以使用unit來說明
// 這時,這個函式我們也叫過程(procedure)
def f10(name: string): unit =
scalal 函式注意事項和細節討論
函式的形參列表可以是多個,如果函式沒有形參,呼叫時可以不帶 package com.xcu.chapter06.homework object demo01 class dog 輸出結果 狗正在吃骨頭!形參列表和返回值列表的資料型別可以是值型別和引用型別object demo01 def creat...
scala型別匹配注意事項
1 map string,int 和map int,string 是兩種不同的型別,其他的類推,list int list string 其他類推 2 在進行型別匹配時,編譯器會預先檢測是否有可能的匹配,如果沒有則報錯 object matchfordemo 說明 只遍歷出value 0 的key ...
go 函式使用時的注意事項和細節
函式的心餐列表可以時多個,返回值列表也可以是多個 形參列表和返回值列表的資料型別可以是值型別和引用型別 函式的命名遵循識別符號命名規範,首字母不能是數字,首字母大寫該函式可以被本包檔案和其他包檔案使用,首字母小寫,將只能被本包檔案使用,其他包檔案不能使用 函式中的變數是區域性的,函式外不生效 基本資...