Вы можете написать:
str match { case "foo" | "bar" => ... }
На первый взгляд выглядит, что |
может быть объектом-экстрактором, однако:
str match { case |("foo", "bar") => ... }
не работает. (И я не вижу, как это может быть реализовано в любом случае.)
Итак, это волшебный встроенный оператор?
(Я считаю, что раньше я видел этот вопрос на SO, но его невозможно было найти...)