Извлечь главное значение из частичного случая - PullRequest
0 голосов
/ 26 ноября 2011

Допустим, я определяю некоторые случаи для сопоставления, где меня интересует только проверка аргумента:

BytecodeChains.partial {
    case CallProperty(name, args) if name == someConstant => xxx
} ....

где сигнатура функции:

BytecodeChains.partial[A] (f: PartialFunction[AbstractOp, A]): ...

Как я могу вернуть весь соответствующий CallProperty объект? Я мог бы создать новый, но это немного уродливо. Есть ли способ ссылаться на оригинал вместо xxx?

Ответы [ 2 ]

8 голосов
/ 26 ноября 2011
case xxx @ CallProperty(name, args) if name == someConstant => xxx

Вы также можете сделать это между прочим:

case xxx @ CallProperty(`someConstant`, args) => xxx
4 голосов
/ 26 ноября 2011

Это то, что вы ищете?

case c @ CallProperty(name, args) if name == someConstant => c
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...