scala中模式匹配中的@代表什么意思

来源:互联网 发布:逆袭网络剧7第一集哇趣 编辑:程序博客网 时间:2024/06/10 04:03
val l = List(1,2,3)val s = l match {  case list @ List(1, _*) => s"a start value is 1 list :$list"  case list : List[_] => s"a start value not 1 list"}

看书上说是为了取出模式匹配后对应的原来输入值,例如上面例子中的模式匹配是为了匹配1开始的列表,如果写成case x: List(1, _*) 是无法编译通过的,而写成@则可以编译通过并将值赋予list