2010-12-04 143 views
0

有沒有辦法將一些額外的參數傳遞給提供給Scala的List.foldRight的函數?傳遞額外的參數foldRight

一些示例代碼:

def createActorPool[T](implicit actor: Manifest[T], poolSize: Int): List[Supervise] = { 
    (1 to poolSize).foldRight(List[Supervise]()) { 
    (idx, list) => { Supervise(actorOf[actor], Permanent) :: list } 
    } 
} 

我感興趣的對象是actor,當被用於構建監督然而這是不可見的。

P.S .:我很新的斯卡拉,所以請接受我的道歉,如果這是一個常見問題(儘管廣泛的谷歌搜索沒有任何適用的命中)。

回答

3

我真的不知道你的問題。 傳遞給foldRight的函數可以自由引用和使用範圍內的任何其他東西。 這還不夠嗎?

+0

嗯...是的。可能我誤解了一個編譯器錯誤信息(IDEA Scala插件抱怨一個無法解析的符號),所以我的印象是演員不可見。感謝澄清這一點! – 2010-12-04 17:39:44

2

在斯卡拉,字符[]僅用於類型。在你提供的代碼示例中,actor是一個對象,而不是一個類型。也許這將工作:

def createActorPool[T](implicit actor: Manifest[T], poolSize: Int): List[Supervise] = { 
    (1 to poolSize).foldRight(List[Supervise]()) { 
    (idx, list) => { Supervise(actorOf[T], Permanent) :: list } 
    } 
}