0

我正在尝试以下列方式使用输入参数创建期货列表

def main( args:Array[String] ){
    val threads = args foreach yield future {
        // Do stuff here
    }
}

但每次我尝试运行它时,我都会收到以下错误

error: ';' expected but 'yield' found.
val threads = args foreach yield future { str => 

我需要对我的函数做些什么才能使其编译?

4

2 回答 2

3
def main( args:Array[String] ){
    val threads = args map future {
        // Do stuff here
    }
}

foreach不返回东西。map返回东西。它们都是在可迭代集合上定义的方法。

相反,yield关键字与for构造一起使用(称为理解),如下所示

for (arg <- args) yield future {...whatever}
//in general: for(generator) yield (result for each generated element)

(由pagoda_5b编辑,被拒绝但我觉得值得)

于 2013-02-28T22:00:55.283 回答
1

这个怎么样:

def main( args:Array[String] ){
  val threads = for(arg <- args ) yield future{1 + 1} 
}
于 2013-02-28T20:34:11.043 回答