в скале не рублю но вопрос имею, а так нельзя было написать?
def findAddressByUser(user: Option[User]): Future[Option[Address]]

и за оверлоадить, если умеет.
Отдельно взятая, эта сигнатура попахивает. А если посмотреть шире примера из статьи, то это функция с таким параметром еще и хуже компонуется в случае когда юзер точно есть.
Таким образом можно вообще сделать
def findAddressByUser(user: Future[Option[User]]): Future[Option[Address]]
т.е. можно
Конечно :) Но не стоит

Можно, но это будет говнокод.

говнокод это костыль в виде OptionT
Добрый день! Возник вопрос по коду.

def findUserById(id: Long): OptionT[Future, User] =
  OptionT { ??? }


Мой родной язык C++. Код выше — это объявление функции, заглушка или что-либо ещё? Вопрос возник потому, что по существу проблемы — поиск польователя по индексу — в коде ни сказано ни символа. Судя по полноте листинга, это финальная, рабочая версия кода, и три знака вопроса должны неким «магическим» образом решать поставленную задачу — но что-то логика подсказывает, что любую задачу тремя знаками вороса не решить!

Благодарю!

??? — это просто заглушка. Она определена в scala как


def ??? : Nothing = throw new NotImplementedError

Статья, конечно же, не о поиске в базе данных по индексу. :)

Только полноправные пользователи могут оставлять комментарии.
Войдите, пожалуйста.