0
我有问题了解如何把类型信息放在scala中,以及如何把它。在这里,我创建了几个Actor
的序列,我不会输入它们。即使我不得不,我不知道哪种类型的序列map
产生给他们适当的类型。需要一些帮助,以帮助类型推理引擎
然后,当编译器因为我试图总结Any
s而大叫我时,我不知道从哪里开始填补空白。
这是我的代码,我试图尽量减少它,同时仍然让所需的信息可用。
object Actors {
def main(args: Array[String]) {
val array = randomArray(5)
val master = new Master(array, 5)
master.start
}
def randomArray(length: Int): Array[Int] = {
val generator = new Random
new Array[Int](length) map((_:Int) => generator nextInt)
}
}
class Master(array: Array[Int], slavesNumber: Int) extends Actor {
def act() {
val slaves = (1 to slavesNumber).map(_ => new Slave)
slaves.foreach(s => s.start)
val futures = slaves.map(s => s !! Work(array))
val results = awaitAll(3000, futures:_*)
val res2 = results.flatMap(x => x)
println((0 /: res2)(_+_))
}
}
class Slave() extends Actor {
def act() {
Actor.loop {
receive {
case Work(slice) =>
reply((slice :\ 0)(_+_))
}
}
}
}
我也很欣赏一些关于此问题的综合性文档的一些好的指针。
哪一行是编译错误?你可能需要提供类型信息到's的输出!使用mapTo转换工作(数组)。一些文件在这里:http://doc.akka.io/docs/akka/snapshot/scala/actors.html#ask-send-and-receive-future – rjsvaljean
折叠,它不知道哪些类型是论据我反馈给'(_ + _)'。我和斯卡拉演员合作,而不是阿卡,不知道它是否重要 – m09