Проблема с сопоставлением Scala + область действия

Учитывая следующий код:

case class ChangeSet(field:String, from:Object, to:Object)

private var changed:List[ChangeSet] = Nil

def change(field:String, from:Object, to:Object) {
  changed.find{ case ChangeSet(field,_,_) => true } match {
    case Some(ChangeSet(field,to,_)) => // do stuff
    case Some(_) => // do stuff
    case _ => // do stuff
  }
}

Строка, вызывающая у меня проблемы, - Some (ChangeSet (field, to , _)) .

Он компилируется, но, похоже, происходит то, что Scala заполняет его как заполнитель для подстановочного знака. Я основываю это предположение на том факте, что когда я выполняю следующее Some (ChangeSet (field, to, to)) , я получаю сообщение об ошибке , которое уже определено как значение .

Я хотел создать объект ChangeSet с до из параметров метода.

Возможно ли это?

6
задан Kim Stebel 30 May 2011 в 05:43
поделиться