有没有办法向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时它是不可见的。
附言:我是Scala的新手,所以如果这是一个常见问题,请接受我的道歉(尽管我在谷歌上大量搜索,但没有任何适用的命中)。
发布于 2010-12-04 17:35:15
我真的不明白你的问题。传递给foldRight的函数可以自由引用和使用作用域中的任何其他内容。这还不够吗?
发布于 2010-12-04 17:46:31
在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 }
}
}
https://stackoverflow.com/questions/4354796
复制相似问题