2013-02-28 92 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} 
}