В Scala, я могу иметь:Scala - Определить тип для Либо для компактности или записать его явно для удобочитаемости?
trait Api {
def someApiCall: Either[Failure, GoodResult];
}
или
object SomeObject {
type SomeResult = Either[Failure, GoodResult]
}
trait Api {
def someApiCall: SomeObject.SomeResult;
}
где бывший более четко о типе результата, и, таким образом, легче читать, но включает в себя перепечатывать либо [...] над и в разных реализациях. Это решается в последнем, но тогда читатель не может заключить много о результатах с первого взгляда.
Если тип возврата был Option
вместо Either
, я бы, естественно, придерживался прежней версии. Для более сложных типов со многими параметрами типа вторая будет более выгодной. Either
- это где-то полузащитник.
У меня возникает ощущение, что в конечном итоге последнее более удобно. Как вы думаете? Есть ли практика в этом отношении?
Спасибо! также для указания на валидацию – ron