Есть ли способ заставить ArrowAssoc работать с шаблоном?

Например, если я хочу написать

1 -> 2 match {
 case 1 -> 2 => "matched"
 case _ => "not matched"
}
// error: not found: value ->

а не немного менее очевидный

1 -> 2 match {
 case (1, 2) => "matched"
 case _ => "not matched"
}
1 ответ

У меня есть такая штука! Мне это нравится, потому что во многих случаях я считаю его более читаемым.

object -> {
 def unapply[A, B](pair: (A, B)): Option[(A, B)] =
 Some(pair)
}

Теперь вы можете сделать:

scala> val a -> b = 1 -> 2
a: Int = 1
b: Int = 2

licensed under cc by-sa 3.0 with attribution.