Если PartialFunction является чертой, то как работает этот код? Создаем ли мы объект признака?Как мы создаем объект для черты?
def x=new PartialFunction[Any, Unit] {
def isDefinedAt(x: Any) = x match {
case "hello" => true
case "world" => true
case _=> false
}
def apply(x: Any) = x match {
case "hello" => println("Message received hello")
case "world"=> println("Message received world")
}
}
x("hello")
if (x.isDefinedAt("bye")){ x("bye")}
x("bye")
Вы создаете _anonymous реализацию_ признака - так же, как создание анонимной реализации интерфейса в Java. –