Этот код из Запрос набора данных с помощью Scala Соответствие шаблону:
object & { def unapply[A](a: A) = Some((a, a)) }
"Julie" match {
case Brothers(_) & Sisters(_) => "Julie has both brother(s) and sister(s)"
case Siblings(_) => "Julie siblings are all the same sex"
case _ => "Julie has no siblings"
}
// => "Julie has both brother(s) and sister(s)"
Как работает &
? Я не вижу логического теста в любом месте для конъюнкции. Как работает эта магия Scala?