我最近对学习 Scala 产生了兴趣(目前主要通过 Project Euler 工作),并且我决定编写一个简单的程序:一个简单的并发下载器。我很难找到一个好的方法。
我很了解 Python,而且我喜欢 gevent 库的工作方式。我想做的是在这里用 gevent 解决。有没有一种简单的方法可以在 Scala 中做这样的事情,还是我完全走错了路?我看过 Dispatch 库,但似乎难以理解。我应该使用演员吗?
任何帮助或指导将不胜感激。谢谢。
我最近对学习 Scala 产生了兴趣(目前主要通过 Project Euler 工作),并且我决定编写一个简单的程序:一个简单的并发下载器。我很难找到一个好的方法。
我很了解 Python,而且我喜欢 gevent 库的工作方式。我想做的是在这里用 gevent 解决。有没有一种简单的方法可以在 Scala 中做这样的事情,还是我完全走错了路?我看过 Dispatch 库,但似乎难以理解。我应该使用演员吗?
任何帮助或指导将不胜感激。谢谢。
好的,我确实同意Dispatch文档目前有点粗糙和小,但将来可能会改变(许多优秀的 Scala 库就是这种情况)。
但是根据您的需要应用 Dispatch 的结果是惊人的:
import dispatch._
(1 to 100).map{ i =>
Http(url("http://bash.org/?" + i) OK as.String)
}.map{ f =>
try {Some(f.apply)} catch {case e => println(e.getMessage); None}
}.seq.flatten
这将使您同时获得来自 的前 100 个报价的文件bash.org
。