我對scala相對陌生,並且成功地製作了一些非常簡單的程序。 但是,現在我正在嘗試一些現實世界的問題解決方案,事情變得越來越難......Scala - 嵌套循環,理解和最終迭代的類型
我想用'FileTypeReader'的各種'接受「某些文件(每個FileTypeReader子類型一個),並返回一個選項[配置],如果它可以從中提取配置。
我試圖避免勢在必行的風格,寫,對於爲例,這樣的事情(使用Scala的-10,scaladoc的路徑這裏http://jesseeichar.github.com/scala-io-doc/0.3.0/api/index.html#scalax.file.Path):
(...)
trait FileTypeReader {
import scalax.file.Path
def accept(aPath : Path) : Option[Configuration]
}
var readers : List[FileTypeReader] = ...// list of concrete readers
var configurations = for (
nextPath <- Path(someFolder).children();
reader <- readers
) yield reader.accept(nextPath);
(...)
當然,這是不行的, for-comprehensions返回第一個生成器類型的集合(這裏是一些IterablePathSet)。
由於我嘗試了很多變體,感覺像是在圈內跑步,我懇求你對此提出建議以解決我的瑣碎問題? - 優雅的問題! :)
非常感謝提前,
sni。
這是有點難,除非你告訴我們什麼元素的類型在comp rehension是 - 即'children()'返回什麼,'讀者'是什麼。 REPL示例對詢問Scala問題非常有用,因爲它們可以被REPLicated – 2012-02-06 14:54:49
我編輯我的問題更清晰! – 2012-02-06 15:15:59