Цикл ввода-вывода файла преждевременно прерывается? - PullRequest
0 голосов
/ 05 февраля 2012

Я читаю файл построчно, используя этот цикл:

for(line <- s.getLines()){
  mylist += otherFunction(line);
}

где переменная mylist - это ArrayBuffer, в которой хранится коллекция пользовательских типов данных. otherFunction(line); делает что-то вроде этого ...

def otherFunction(list:String)={
  val line = s.getLine(index);
  val t = new CustomType(0,1,line(0));
  t
}

и CustomType определяется как ...

class CustomType(name:String,id:Int,num:Int){}

Я пропустил большую часть кода, как вы можете видеть, потому что он не имеет отношения к делу. Я могу запустить остальные мои функции, и он будет читать файл построчно до EOF, пока я закомментирую последнюю строку otherFunction(). Почему возвращение значения этой функции в мой список приводит к остановке цикла for?

1 Ответ

2 голосов
/ 05 февраля 2012

Не совсем понятно, что вы пытаетесь сделать здесь.Я предполагаю, что s является scala.io.Source объектом.Почему otherFunction принимает строковый аргумент, который он не использует?getLine устарело, и вы не говорите, откуда взято index.Вы действительно хотите сослаться на первый символ в строке String с индексом 0, и это действительно должно быть Int?Предполагая, что это именно то, что вы хотите сделать, почему бы просто не использовать map на итераторе?

val list = s.getLines.map(i => new CustomType("0", 1, i(0).asDigit)).toIndexedSeq
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...