3

我最近对学习 Scala 产生了兴趣(目前主要通过 Project Euler 工作),并且我决定编写一个简单的程序:一个简单的并发下载器。我很难找到一个好的方法。

我很了解 Python,而且我喜欢 gevent 库的工作方式。我想做的是在这里用 gevent 解决。有没有一种简单的方法可以在 Scala 中做这样的事情,还是我完全走错了路?我看过 Dispatch 库,但似乎难以理解。我应该使用演员吗?

任何帮助或指导将不胜感激。谢谢。

4

1 回答 1

6

好的,我确实同意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

于 2012-08-28T07:21:28.413 回答