【发布时间】:2017-02-10 08:49:20
【问题描述】:
在 Scala 中,我们可以对类型进行模式匹配。那么是否可以将变量绑定到具有类型的匹配模式。现在有界变量的类型为Any
val a: Any = "hello"
a match {
case v @ String {
v.length() // not working
}
}
【问题讨论】:
在 Scala 中,我们可以对类型进行模式匹配。那么是否可以将变量绑定到具有类型的匹配模式。现在有界变量的类型为Any
val a: Any = "hello"
a match {
case v @ String {
v.length() // not working
}
}
【问题讨论】:
你的语法不正确!!!,应该是这样的:
val a: Any = "hello"
a match {
case v: String => v.length()
}
使用: 匹配类型,=> 与下一个block
【讨论】:
要对类型进行模式匹配,请遵循 @chengpohi 中公开的语法。
绑定运算符@ 用于引用模式匹配中提取的数据的(子)结构。例如在
("hello",123) match {
case t @ (fst: String, snd: Int) => println(s"got tuple $t")
case _ =>
}
标签t 指的是整个元组,不必表示fst 和snd。
【讨论】: