use*_*248 3 scala pattern-matching
当模式匹配案例类时,你如何实际引用它匹配的类?
这是一个展示我的意思的例子:
sealed trait Value
case class A(n: Int) extends Value
v match {
case A(x) =>
doSomething(A);
}
Run Code Online (Sandbox Code Playgroud)
v类型值在哪里并且采用类型doSomething的参数A,而不是Value.
Jat*_*tin 10
做这个
v match {
case a @ A(x) =>
doSomething(a)
}
Run Code Online (Sandbox Code Playgroud)
@被称为Pattern Binder(参见§8.1.3).来自参考:
图案装订器x @ p由图案变量x和图案p组成.变量x的类型是模式p的静态类型T. 此模式匹配模式p匹配的任何值v,前提是v的运行时类型也是T的实例,并且它将变量名称绑定到该值.
| 归档时间: |
|
| 查看次数: |
730 次 |
| 最近记录: |