当模式匹配案例类时,您实际上如何引用它所匹配的类?
这是一个例子来说明我的意思:
sealed trait Value
case class A(n: Int) extends Value
v match {
case A(x) =>
doSomething(A);
}
Where v
是值类型并且doSomething
接受一个类型的参数A
, not Value
.
Do this
v match {
case a @ A(x) =>
doSomething(a)
}
@
叫做图案活页夹 http://www.scala-lang.org/docu/files/ScalaReference.pdf(参见第 8.1.3 节)。来自参考:
模式绑定器 x@p 由模式变量 x 和模式 p 组成。
变量 x 的类型是模式 p 的静态类型 T。这
模式匹配与模式 p 匹配的任何值 v,前提是
v 的运行时类型也是 T 的实例,并且它绑定
变量名到该值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)