目錄
方法引數
默認引數
帶名引數
變長引數
方法引數
scala中的方法引數,使用比較靈活,它支持以下幾種型別的引數:
- 默認引數
- 帶名引數
- 變長引數
默認引數
在定義方法時可以給引數定義一個默認值,
示例
定義一個計算兩個值相加的方法,這兩個值默認為0
呼叫該方法,不傳任何引數
參考代碼
// x,y帶有默認值為0
def add(x:Int = 0, y:Int = 0) = x + y
add()
帶名引數
在呼叫方法時,可以指定引數的名稱來進行呼叫,
示例
定義一個計算兩個值相加的方法,這兩個值默認為0
呼叫該方法,只設定第一個引數的值
參考代碼
def add(x:Int = 0, y:Int = 0) = x + y
add(x=1)
變長引數
如果方法的引數是不固定的,可以定義一個方法的引數是變長引數,
語法格式:
def 方法名(引數名:引數型別*):回傳值型別 = {
方法體
}
[!NOTE]
在引數型別后面加一個*號,表示引數可以是0個或者多個
示例
定義一個計算若干個值相加的方法
呼叫方法,傳入以下資料:1,2,3,4,5
參考代碼
scala> def add(num:Int*) = num.sum
add: (num: Int*)Int
scala> add(1,2,3,4,5)
res1: Int = 15
其他:
- scala允許指定最后一個引數是可變長度的, 或者唯一一個引數
- 變長引數,在函式體內本質上是一個Array實體. 也就是除了例子里面的sum 外, 我們也可以用for回圈迭代它, 如:
scala> def add(x: Int*): Int = {
| var result = 0
| for(i <- x) result += i
| result
| }
add: (x: Int*)Int
scala> add(1, 2, 3)
res6: Int = 6
- 雖然它本質上是一個Array ,但是你不可以將Array物件傳遞給他, 如果要傳遞 需要傳遞如 array:_* 表明將每個元素傳遞給它 而不是整個陣列物件
scala> add(ar:_*)
res8: Int = 15
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/283201.html
標籤:其他
上一篇:2021年大資料常用語言Scala(十):基礎語法學習 方法
下一篇:10分鐘拿下雪花演算法
