_
(下劃線)這個字符在 Scala 中似乎無處不在,到目前爲止,它可能是 Scala 中使用最廣泛的符號。
使用場景清單:
-
作爲包引入的通配符
-
作爲元組索引的前綴.
val names: (String, String) = ("lisi", "zs")
names._1
names._2
- 作爲函數值的隱式參數
println(list.map(_ * 2))
// 等價於
println(list.map(ele => ele * 2))
-
利用默認值初始化字段
-
用於在函數名中混合操作符
Scala 不允許直接使用字母和數字字 符的操作符。例如,foo:
是不允許的,但是可以通過使用下劃線來繞過這個限制, 如foo_:
// 錯誤
def foo:(a : Int) = {
}
// 正確
def foo_:(a :Int){
}
-
在模式匹配時作爲通配符.
-
在處理異常時, 在
catch
在代碼塊中和case
聯用 -
作爲分解操作的一部分. 例如,
max(arg: _*)
在將數組或者列表參數傳遞給接受可變長度參數的函數前,將其分解爲離散的值。 -
用於部分應用一個函數。例如,在代碼片段
val square = Math.pow(_: Int, 2)
中,我們部分應用了pow()
方法來創建了一個square()
函數。