19.6 下划线用法总结
_
(下划线)这个字符在 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()
函数。