我有以下代码:SCALA - 表达(为{}收率x)是类型未来[未来[..]]代替预期未来[..]
val futureWithResult = for{files <- scanFiles(dir)
res <- procFiles(files)}yield res
RES是Future[...]
类型的,为什么这个声明返回Future[Future[..]]
?? 在我的程序中,我需要futureWithResult为Future[...]
。为什么我的收益代码将res的类型包装到另一个Future[]
?
scanFiles和procFiles方法的返回类型是什么? –
scanFiles - Seq [String] procFiles - Future [Seq [(String,Int)]] [。 。 。]在我的问题代表类型Seq [(String,Int)] – DorianOlympia
@DorianOlympia,给定类型'scanFiles:Seq [String]'和'procFiles:Future [Seq [(String,Int)]]'你不能写一个理解,因为'scanFiles'的'flatMap'需要一个'GenTraversableOnce'值,而未来值不是。因此,你的代码不应该编译。 –