一、語法格式:
def 方法名(引數名:引數型別,引數名:引數型別):[return type] =
引數列表的引數型別不能省略,返回值型別可省略,編譯器可自動推斷其型別,返回值可不寫return,預設是{}塊表示式的值
scala>
def sum (a:
int,b:
int)
:int
=sum:
(a:int
, b:
int)
intscala> sum(1,
2)res0:
int=
3scala>
def add(a:
int,b:
int)
=add:
(a:int
, b:
int)
intscala> add(2,
3)res1:
int=
5
遞迴方法不能省略返回值
scala>
def fun(a:
int)
:int
=fun:
(a:int
)int
scala> fun(10)
res2:
int=
3628800
二、方法引數:
1、預設引數:定義方法時給引數定義乙個預設值
scala>
def sum(x:
int=
0,y:
int=1)
=sum:
(x:int
, y:
int)
intscala> sum(
)res3:
int=
1scala> sum(3,
4)res4:
int=
7
2、變長引數:方法引數不固定
格式:def 方法名(引數名:引數型別*):返回值型別 =
引數型別後面的 * 表示引數可以是0或者多個
scala>
def sum1(x:
int*):
int=
sum1:
(x:int*)
intscala> sum1(1,
2,3)
res5:
int=
6scala>
def sum(y:
int*
)=y.sum
sum:
(y:int*)
intscala> sum(
)res6:
int=
0scala> sum(3,
4)res7:
int=
7scala>
三、方法呼叫方式:
1、字尾呼叫
物件名.方法名(引數)
scala> math.abs(-1
)res9:
int=
1
2、中綴呼叫:
物件名 方法名 引數
注:如果有多個引數,用括號括起來
scala> math abs -
1res10:
int=
1
操作符即方法:所有操作符都是方法,操作符是乙個名字是符號的方法
scala>1+
2res11:
int=
3
3、花括號呼叫:適用於只有乙個引數的方法
math.abs
scala> math.abs
求絕對值
res12:
int=
2
4、無括號呼叫
方法無引數,可省略方法名後面的括號
scala>
def printscala(
)=print(
"scala"
)printscala:()
unit
scala> printscala
scala
語法:val 函式名 =(引數名:引數型別,引數名:引數型別…) =>函式體
scala>
val fun =
(a:int
,b:int
)=> a + b
fun:
(int
,int
)=>
int=
scala> fun(2,
8)res0:
int=
10
方法轉換為函式:再函式名後加 _ ,函式名和下劃線之間用空格隔開
scala>
def sum(x:
int,y:
int)
=x+y
sum:
(x:int
, y:
int)
intscala>
val s =sum _s:(
int,
int)
=>
int=
Scala基礎 函式
函式定義 def 函式名 引數名1 引數型別1,引數名2 引數型別2 返回型別 顯式定義了返回型別,才可以return def play1 1 標準形式,返回任一型別 def play2 a1 int,a2 int unit println play2 10,20 返回值為int型別 def pla...
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基礎 getOrElse 方法
getorelse 主要就是防範措施,如果有值,那就可以得到這個值,如果沒有就會得到乙個預設值,個人認為早開發過程中用getorelse 方法要比用get 方法安全得多。def getorelse b1 b key a,default b1 b1 get key match從api中可以看出,傳入的...