2013-02-28 94 views
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 => 

我需要对我的函数做些什么来编译它?

回答

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编辑,将其拒绝,但我觉得这是值得的)

1

如何:

def main(args:Array[String]){ 
    val threads = for(arg <- args) yield future{1 + 1} 
}