有没有办法将一些额外的参数传递给提供给Scala的List.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
,但在用于构建Supervise时不可见。
P.S。:我对Scala很新,所以请接受我的道歉,如果这是一个常见问题解答(尽管广泛的谷歌搜索没有任何适用的点击)。
答案 0 :(得分:3)
我真的不明白你的问题。 传递给foldRight的函数可以自由引用并使用范围内的任何其他内容。 还不够吗?
答案 1 :(得分:2)
在Scala中,字符[
和]
仅用于类型。在您提供的代码示例中,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 }
}
}