2010-12-04 82 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 } 
    } 
} 
相关问题