0
我一直在看别人的code,并注意到这什么是scala模式匹配中的@符号?
case overdue @ PendingOperation(operation, _) => ......
是什么符号@的意思是在这里吗?它怎么叫?
我一直在看别人的code,并注意到这什么是scala模式匹配中的@符号?
case overdue @ PendingOperation(operation, _) => ......
是什么符号@的意思是在这里吗?它怎么叫?
它被称为可变绑定。 它将匹配的值绑定到overdue
变量。
通过这种方式,您既可以通过模式匹配来解构值,也可以将其作为一个整体进行引用。
虽然它不是在的情况下特别有用像
foo match {
case a @ Bar(baz, bar) => ...
}
,因为你可以直接引用foo
,它的情况下变得更有趣,就像在您的内部匹配绑定到
foo match {
case Bar(b @ Baz("hello", _), _) => ...
}
变量。