x: None.type =>
есть другой вариант записи case x @ None => ... case x @ Some("blabla") => x == Some("blabla") will be true, тогда в x попадет все, что сматчится справа по обычным правилам match cases
ну это тоже самое что и case Some(_) => . . . case None => . . . по сути. Я скорее про тип None спрашивал, так как не ожидал такого поведения
нет. это не то же самое
будет через другой unapply отрабатывать?
не другой, а обычный. будет именно то, что я написал. в x попадет именно ссылка на обьект, который был передан в match блок, при этом он будет типизирован для компилятора относительно правой части после @ - которая будет проверяться по стандартным правилам паттерн матчинга через unapply. В случае x:SomeType - проверка идет только на соответствие типа. при записи case SomeObjectWithUnapply(...,...,....,...) => - невозможно получить ссылку на обьект который был передан в матч
Спасибо, я почему-то подумал что в этом случае работает экстрактор который возвращает Boolean
Обсуждают сегодня