Я относительно новичок в scala и успешно создал несколько действительно простых программ.Однако теперь, когда я пытаюсь решить некоторые проблемы в реальном мире, все становится немного сложнее ...
Я хочу прочитать некоторые файлы в объектах «Конфигурация», используя различные подтипы «FileTypeReader», которые могут'принять' определенные файлы (по одному для каждого подтипа FileTypeReader) и вернуть Option [Configuration], если он может извлечь из него конфигурацию.
Я пытаюсь избежать императивного стиля и написал, например, что-товот так (используя scala-io, scaladoc для Path здесь 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-compitionsings возвращает коллекцию первого типа генератора (здесь, некоторый IterablePathSet).
Поскольку я пробовал много вариантов и чувствую, что бегаю по кругу, прошу у вас советов по этому вопросу, чтобы решить мою - тривиальную?- проблема с элегантностью!:)
Большое спасибо заранее,
sni.