Я столкнулся с проблемой для понимания следующим образом:
def doSomething(): F[String] = {
for {
_ <- Future.traverse(items)(item => doSomeWork(item)) // Future[]
_ <- doSomeOtherWork(42) //F[]
} yield (())
}
Функция doSomeWork
выглядит следующим образом:
def doSomeWork(item: Item): Future[Unit] =
// some work done inside a Future
)
, а функция doSomeOtherWork
выглядит следующим образом :
def doSomeOtherWork(i : Int): F[Unit]
Поэтому, когда я пытаюсь скомпилировать, я сталкиваюсь со следующей ошибкой:
[error] found : F[Int]
[error] required: scala.concurrent.Future[?]
[error]
[error] ^
[error] type mismatch;
[error] found : scala.concurrent.Future[Nothing]
[error] required: F[Int]
Разве мне не разрешено смешивать F [] и Future внутри для такого компа? 1015 *