很多程序员在读别人的Scala代码时会遇到很多下划线, 那么我们就来总结一下在Scala中下划线的7种常见用法:
1. 表示忽略
有时候一个变量的名字或者值并不重要或者并不会被使用,那么我们可以声明这个变量:
val _ = 100
不会以上这种情况还是挺少见的。 更多一些的使用情形:
val l = (1 to 10).map(_ => 100)
还有一种情形是在self-types中作为类型限制:
trait Engine
trait Motor { _: Engine
// some implementation
}
实现Motor 时必须要先实现Engine。
最后, 在范型中也会使用到下划线。
def process(list: List[Option[_]]): Int = list.length
2. Wildcards
比如我们在进行import时, 想引入包中所有的类:
import cats.implicits._
还有一种使用方式就是在模式匹配中:以下表示匹配所有可能的结果
something match {
case _ => "do something"
}