У меня есть этот фрагмент кода, я просто использую его в тестовых случаях, когда нет необходимости выполнять какую-либо обработку ошибок. Что он делает:
Код выглядит следующим образом:
def parseDs(ins: List[String]) = {
def filterResults[U, T](in: List[Either[U, T]]): List[T] = {
in.filter(y => y.isRight).map(z => z.right.get)
}
filterResults(ins.map(x => DSJsonMapper.parseDSResult(x)))
}
Я не делал очень много полиморфных функций, но это работает. Однако мне кажется, что это немного некрасиво. У кого-нибудь есть лучшее предложение, как сделать то же самое.
Я знаю, что это будет зависеть от личных предпочтений. Но предложения приветствуются.