Читаю файл TSV шаблон и использовать используя что-то вроде этого:фильтрация внутри `for` с соответствующими
case class Entry(entryType: Int, value: Int)
def filterEntries(): Iterator[Entry] = {
for {
line <- scala.io.Source.fromFile("filename").getLines()
} yield new Entry(line.split("\t").map(x => x.toInt))
}
Теперь я оба заинтересованы в фильтрации записей, чьи entryType
установлены на 0 и пренебрегая линии с количество столбцов больше или меньше 2 (это не соответствует конструктору). Мне было интересно, есть ли идиоматический способ достичь этого, может быть использование сопоставления шаблонов и метода unapply
в сопутствующем объекте. Единственное, о чем я могу думать, это использовать .filter
на результирующем итераторе.
Я также принимаю решение, не связанное с циклом for
, но которое возвращает Iterator[Entry]
. Эти решения должны быть толерантными к искаженным входным данным.
Вы должны опубликовать свое решение в качестве ответа на свой вопрос. – gzm0
Выполнено. В любом случае спасибо за вашу поддержку, которую очень ценят :) – nopper