scala中模式匹配中的@代表什么意思
答案:1 悬赏:20 手机版
解决时间 2021-04-17 15:42
- 提问者网友:棒棒糖
- 2021-04-17 01:46
scala中模式匹配中的@代表什么意思
最佳答案
- 五星知识达人网友:春色三分
- 2021-04-17 02:32
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
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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯