Список элементов, соответствующих их типу

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

def walkTree(list:List[Command]) {
    list match {
        case Command1::rest => doSomething(); walkTree(rest)
        case Command2::rest => doSomethingElse(); walkTree(rest)
        case Nil => ;
    }
}

Я также знаю, что вы можете сопоставить шаблон для определенного типа и одновременно назначить переменную :

try {
    ...
}
catch {
    case ioExc:IOException => ioExc.printStackTrace()
    case exc:Exception => throw new RuntimeException("Oh Noes", e);
}

Есть ли способ объединить и то и другое, как показано ниже:

def walkTree(list:List[Command]) {
    list match {
        case cmd1:Command1::rest => doSomething(); walkTree(rest)
        case cmd2:Command2::rest => doSomethingElse(); walkTree(rest)
        case Nil => ;
    }
}

Или мне нужно извлечь каждый элемент списка перед сопоставлением?

8
задан pafcio00 9 June 2011 в 08:39
поделиться