Scala模式匹配变量绑定与自动类型转换

时间:2017-02-10 08:49:20

标签: scala pattern-matching

在scala中,我们可以对类型进行模式匹配。因此可以将变量绑定到匹配的模式与类型。现在有界变量的类型为Any

val a: Any = "hello"
a match {
     case v @ String {
          v.length() // not working
     }
}

2 个答案:

答案 0 :(得分:4)

您的语法不是正确 !!!,它应该是:

val a: Any = "hello"
a match {
     case v: String => v.length()
}

使用:匹配类型,=>使用下一个block

答案 1 :(得分:0)

要对类型进行模式匹配,请遵循@chengpohi中公开的语法。

绑定运算符@用于指代在模式匹配中提取的数据的(子)结构。例如在

("hello",123) match {
  case t @ (fst: String, snd: Int) => println(s"got tuple $t")
  case _                           =>
}

标签t指的是整个元组,无需表示fstsnd