1
я попытался реализовать unapply
для класса, Foo
:Pattern Match на Scala `class`
object Foo {
def unapply(x: Int): Option[Int] = Some(x)
}
class Foo(x: Int)
Однако она не в РЕПЛ, когда я пытаюсь использовать:
scala> val f = new Foo(100)
scala> f match { case Foo(x) => x }
<console>:13: error: pattern type is incompatible with expected type;
found : Int
required: Foo
f match { case Foo(x) => x }
Почему не могу ли я использовать unapply
, который я создал для этого примера?
Спасибо, 'м-z'. Вот еще один пример (http://stackoverflow.com/a/20032429/409976) для читателей вашего решения. –