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", _), _) => ...
}
變量。