Я хотел улучшить сопоставления с образцом на основе подмешать техники , например:Scala шаблону с Mixins
trait Base {
def match(x:Any):String
}
trait HandleAString {
def match(x:Any):String = x match {
case "A" => "matched A string"
}
}
trait HandleOneInt {
def match(x:Any):String = x match {
case x:Int if (x==1) => "matched 1 int"
}
}
//main
val handler = new Base extends HandleOneInt with HandleAString
println(handler.match("a")) //should print "matched A string"
println(handler.match(1)) //should print "matched 1 int"
println(handler.match(2)) //should throw exception
если у вас есть какой-либо другой метод я хотел бы услышать о том, что ...
Ваш вопрос мне не ясен: вы спрашиваете о том, как заставить ваш код работать, или вы просите другую технику, которая не использует mixins? Также: Какова цель этого специализированного соответствия? Вы хотите, чтобы иметь возможность передавать совпадение в качестве объекта, или вам нужно сопоставлять то, что не может быть легко выражено с помощью выражения 'match' Scala? В этом примере было бы разумнее просто называть 'whatver match {case" a "=> ... case 1 => ...}' –
В чем вопрос? Обратите внимание, что 'match' является зарезервированным ключевым словом, поэтому вам нужно будет вызвать ваш метод' Match' или '_match'. –