引言
\quad \quad
scala中,_
下划线这个字符似乎无处不在,可能是Scala中使用最广泛的符号,作用是通配符,下面来总结以下它的使用场景。
1、作为包引入的通配符
- 导入包中所有的类
import scala.collection.immutable._
2、方法转换为函数
如
scala> def add(x:Int,y:Int)=x+y
add: (x: Int, y: Int)Int
scala> val add2 = add _
add2: (Int, Int) => Int = <function2>
3、初始化变量
- 初始化变量,相当于一个占位符
4、作为元组索引的前缀
scala> val tuple=("haoop",1,2,"hello")
tuple: (String, Int, Int, String) = (haoop,1,2,hello)
scala> tuple._1
res0: String = haoop
scala> tuple._3
res1: Int = 2
5、作为函数值的隐式参数
- 即代表集合中所有元素
scala> val list=List(1,2,3,4)
list: List[Int] = List(1, 2, 3, 4)
scala> val list1=list.map(_ * 10)
list1: List[Int] = List(10, 20, 30, 40)
-- 等价于
scala> val list2=list.map(e => e*10)
list2: List[Int] = List(10, 20, 30, 40)
6、作为模式匹配的通配符
- 包括字符串匹配、类型匹配、数组匹配、集合匹配和元组匹配
- 在这里,下划线代表其他即没有匹配上的情况
scala> val word="hadoop"
word: String = hadoop
scala> val result =word match{
| case "hadoop" => 1
| case "spark" => 2
| case _ => 0 // 以上都没有匹配到才会被执行
| }
result: Int = 1